Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
b86436e
add imgui
LucasSaragosa May 25, 2025
901d2b4
varvious bug fixes
LucasSaragosa May 25, 2025
5613d1a
varvious bug fixes
LucasSaragosa May 25, 2025
b1905a1
stupid fuc github
LucasSaragosa May 25, 2025
ced4408
ImGui Impl
LucasSaragosa May 26, 2025
a1cd2eb
common class descs and bugs. fixing stupid string error ffs
LucasSaragosa Jun 10, 2025
4ed9f31
small bug checks
LucasSaragosa Jun 10, 2025
1cceccb
platform
LucasSaragosa Jun 10, 2025
65d0c8d
General Updates
LucasSaragosa Jun 19, 2025
984b34e
fix
LucasSaragosa Jun 19, 2025
90905c2
PIX fix
LucasSaragosa Jun 19, 2025
034024e
UI + bugs
LucasSaragosa Jun 22, 2025
75d776a
update
LucasSaragosa Jun 22, 2025
8c1c98e
Merge branch 'editorUI' of https://github.com/Telltale-Modding-Group/…
LucasSaragosa Jun 22, 2025
76aa53c
General UI updates + bugs
LucasSaragosa Jun 24, 2025
d8ab460
EDITOR UI
LucasSaragosa Jul 9, 2025
65b0297
some bugs
LucasSaragosa Jul 13, 2025
9d6ec01
other fix
LucasSaragosa Jul 13, 2025
9b8f5bc
TEMP MID WORK PUSH (NOT FINISHED)
LucasSaragosa Sep 7, 2025
27bc567
bugs. SDL3 is modified wont build yet
LucasSaragosa Sep 10, 2025
4d7d5c2
module UI
LucasSaragosa Sep 29, 2025
d493ccf
agent module impls
LucasSaragosa Oct 1, 2025
99ebf03
gitignore
LucasSaragosa Oct 1, 2025
2fc787b
SDL3 no submodule, raw(modified). mac fixes
LucasSaragosa Oct 2, 2025
d9998f4
ambiguous fixes
LucasSaragosa Oct 2, 2025
078db4c
SDL3 update + TTE SDL3 bug fixes
LucasSaragosa Oct 2, 2025
fa6864f
Removing ignored files
LucasSaragosa Oct 2, 2025
0331160
rem old SDL3
LucasSaragosa Oct 2, 2025
8fbccd8
try to remove wayland linux
LucasSaragosa Oct 2, 2025
d8d3cb5
warn fixes
LucasSaragosa Oct 2, 2025
1f79913
icons, light module
LucasSaragosa Oct 2, 2025
2dea3d8
Playstation PKG support & AES128 impl & bugs
LucasSaragosa Oct 8, 2025
8588e7d
NFD authors need a talking to !
LucasSaragosa Oct 8, 2025
ce8a140
rollo
LucasSaragosa Oct 9, 2025
810638e
mostmodulestx100
LucasSaragosa Oct 21, 2025
c000052
all TX modules, prop editor barebone
LucasSaragosa Nov 1, 2025
068e40d
PROP UI (50%), Project launch option cmdl, icon, bugs
LucasSaragosa Nov 2, 2025
f9a7445
PROP EDITOR + TODO SYMMAP FIXES
LucasSaragosa Nov 7, 2025
c53cbd4
Property Editor Finished + Bugs
LucasSaragosa Nov 12, 2025
76d188f
final few warnings before merge
LucasSaragosa Nov 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 0 additions & 6 deletions .clang-format

This file was deleted.

14 changes: 2 additions & 12 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,26 +1,16 @@
<<<<<<< Updated upstream
################################################################################
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
################################################################################

.vs/*
Bin/*
build/*
*.DS_Store
CMakeFiles/*
CMakeCache.txt
*.ttarch2
*.ttarch
Dev/.vscode/tasks.json
TelltaleEditor/3rdparty/SDL-shadercross/*
TelltaleEditor/3rdparty/SDL3
TelltaleEditor/3rdparty/SDL3
TelltaleEditor/3rdparty/SDL3
Dev/TestResources/Dbg/*
.vs/*
Bin/*
.DS_Store
*.exe
*.lib
*.a
*.obj
Dev/Workspace/TTE_WorkspaceProperties.txt
Dev/Workspace/TTE_LatestLog.txt
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ else()
set(CMAKE_CXX_FLAGS_RELEASE "/O2") # /O2 = optimize for speed
endif()

if(APPLE)
enable_language(OBJC)
# ventura minimum at least
set(CMAKE_OSX_DEPLOYMENT_TARGET "13.7" CACHE STRING "Minimum OS X deployment version" FORCE)
endif()

set(TELLTALE_EDITOR_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(CMAKE_INSTALL_PREFIX "${TELLTALE_EDITOR_ROOT_DIR}/BinInstall")
set(BINARY_ROOT_DIR "${CMAKE_INSTALL_PREFIX}/")
Expand Down
153 changes: 153 additions & 0 deletions Dev/FX/DX12_Base.fx
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
// generated (temp) from MTL_Base.fx

// ======================================================================= COMMON BETWEEN VERTEX AND PIXEL

struct VertexOut
{

float4 Position : SV_POSITION;
float3 Colour : TEXCOORD0;

TTE_SECTION_BEGIN(!EFFECT_FLAT)
float2 UV : TEXCOORD1;
TTE_SECTION_END()

};

// =========================================================================== VERTEX SHADER

TTE_SECTION_BEGIN(TTE_VERTEX)

struct VertexIn
{

float3 Position : TTE_VERTEX_ATTRIB(AttribPosition);

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)
float3 Normal : TTE_VERTEX_ATTRIB(AttribNormal);
TTE_SECTION_END()


TTE_SECTION_BEGIN(!EFFECT_FLAT)
float2 UV : TTE_VERTEX_ATTRIB(AttribUVDiffuse);
TTE_SECTION_END()


TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)
uint4 BoneIndex : TTE_VERTEX_ATTRIB(AttribBlendIndex);
float3 BoneWeight : TTE_VERTEX_ATTRIB(AttribBlendWeight);
TTE_SECTION_END()

};

cbuffer UniformCamera : TTE_UNIFORM_BUFFER(BufferCamera)
{
float4x4 ViewProjection;
float2 FOV_XY;
float NearClip;
float FarClip;
float AspectRatio;
};

cbuffer UniformObject : TTE_UNIFORM_BUFFER(BufferObject)
{
float4x4 WorldMatrix;
float3 Diffuse;
float Alpha;
};

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)
static const float3 lightPos = float3(10.0f, 10.0f, 10.0f);
TTE_SECTION_END()

VertexOut VertexMain(VertexIn vin

TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)
, StructuredBuffer<float4x4> boneMatrix : TTE_GENERIC_BUFFER(Generic0) // BONE BUFFER INPUT
TTE_SECTION_END()

)
{

VertexOut vout;

TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)

uint i0 = vin.BoneIndex.x;
uint i1 = vin.BoneIndex.y;
uint i2 = vin.BoneIndex.z;

float w0 = vin.BoneWeight.x;
float w1 = vin.BoneWeight.y;
float w2 = vin.BoneWeight.z;

float4 localPos = float4(vin.Position, 1.0f);
float4x4 skin0 = boneMatrix[i0];
float4x4 skin1 = boneMatrix[i1];
float4x4 skin2 = boneMatrix[i2];

float4 skinnedPosition =
mul(skin0, localPos) * w0 +
mul(skin1, localPos) * w1 +
mul(skin2, localPos) * w2;

TTE_SECTION_ELSE()

float4 skinnedPosition = float4(vin.Position, 1.0f);

TTE_SECTION_END() // FEATURE_DEFORMABLE

vout.Position = mul(ViewProjection, mul(WorldMatrix, skinnedPosition));

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)

float3 NormalWorld = normalize(mul(float4(vin.Normal, 0.0f), WorldMatrix).xyz);
float3 worldPos = mul(WorldMatrix, float4(vin.Position, 1.0f)).xyz;
float3 lightDir = normalize(lightPos - worldPos);
float diff = max(dot(NormalWorld, lightDir), 0.0f);

float3 ambient = 0.6f * Diffuse;
vout.Colour = (ambient + diff) * Diffuse;

TTE_SECTION_ELSE() // FEATURE_KEY_LIGHT

vout.Colour = Diffuse;

TTE_SECTION_BEGIN(!EFFECT_FLAT)

vout.UV = vin.UV;

TTE_SECTION_END() // !EFFECT_FLAT

TTE_SECTION_END() // FEATURE_KEY_LIGHT

return vout;
}

TTE_SECTION_END() // TTE_VERTEX

// =========================================================================== PIXEL SHADER

TTE_SECTION_BEGIN(TTE_PIXEL)

TTE_SECTION_BEGIN(EFFECT_FLAT)

float4 PixelMain(VertexOut vin) : SV_Target
{
return float4(vin.Colour, 1.0f);
}

TTE_SECTION_ELSE() // EFFECT_FLAT

Texture2D<float4> textureMap : TTE_TEXTURE(SamplerDiffuse);
SamplerState textureSampler : TTE_SAMPLER(SamplerDiffuse);

float4 PixelMain(VertexOut vin) : SV_Target
{
float4 texColor = textureMap.Sample(textureSampler, vin.UV);
return texColor * float4(vin.Colour, 1.0f);
}

TTE_SECTION_END() // !EFFECT_FLAT

TTE_SECTION_END() // TTE_PIXEL
162 changes: 162 additions & 0 deletions Dev/FX/MTL_Base.fx
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
// ======================================================================= INCLUDES AND INFO

#include <metal_stdlib>
using namespace metal;

// ======================================================================= STRUCTURES

struct VertexIn
{
float3 position TTE_VERTEX_ATTRIB(AttribPosition);

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)
float3 normal TTE_VERTEX_ATTRIB(AttribNormal);
TTE_SECTION_END()

TTE_SECTION_BEGIN(!EFFECT_FLAT)
float2 uv TTE_VERTEX_ATTRIB(AttribUVDiffuse);
TTE_SECTION_END()

TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)
uchar4 bone_index TTE_VERTEX_ATTRIB(AttribBlendIndex);
float3 bone_weight TTE_VERTEX_ATTRIB(AttribBlendWeight);
TTE_SECTION_END()

};

struct VertexOut
{
float4 position [[position]];
float3 colour [[user(locn1)]];

TTE_SECTION_BEGIN(!EFFECT_FLAT)
float2 uv [[user(locn2)]];
TTE_SECTION_END()

};

struct UniformCamera
{
float4x4 viewProj;
float2 fov;
float cam_near;
float cam_far;
float aspect;
};

struct UniformObject
{
float4x4 worldMatrix;
float3 diffuse;
float alpha;
};

// ======================================================================= VERTEX SHADER

TTE_SECTION_BEGIN(TTE_VERTEX)

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)

// Constants for the point light (hardcoded for now)
constant float3 lightPos = float3(10.0f, 10.0f, 10.0f); // Light position in world space

TTE_SECTION_END()

vertex VertexOut VertexMain(VertexIn in [[stage_in]],
constant UniformCamera& cam TTE_UNIFORM_BUFFER(BufferCamera),
constant UniformObject& obj TTE_UNIFORM_BUFFER(BufferObject)
TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)
, constant float4x4* boneMatrix TTE_GENERIC_BUFFER(Generic0)
TTE_SECTION_END()
)
{
VertexOut out;

TTE_SECTION_BEGIN(FEATURE_DEFORMABLE)

// SKINNING

// Read bone indices
uint i0 = (uint)in.bone_index.x;
uint i1 = (uint)in.bone_index.y;
uint i2 = (uint)in.bone_index.z;

// Read bone weights
float w0 = in.bone_weight.x;
float w1 = in.bone_weight.y;
float w2 = in.bone_weight.z;

// Compute local model space skinned positions.
float4 localPos = float4(in.position, 1.0);
float4x4 skin0 = boneMatrix[i0];
float4x4 skin1 = boneMatrix[i1];
float4x4 skin2 = boneMatrix[i2];
float4 skinnedPosition = ((skin0 * localPos) * w0) + ((skin1 * localPos) * w1) + ((skin2 * localPos) * w2);

TTE_SECTION_ELSE()

float4 skinnedPosition = float4(in.position, 1.0);

TTE_SECTION_END()

// Apply world and view-projection transform
out.position = cam.viewProj * obj.worldMatrix * skinnedPosition;

TTE_SECTION_BEGIN(FEATURE_KEY_LIGHT)

// Calculate normal in world space (applying world matrix)
float3 normalWorldSpace = normalize((obj.worldMatrix * float4(in.normal, 0.0f)).xyz);

// Convert input position to world space
float3 worldPos = (obj.worldMatrix * float4(in.position, 1.0f)).xyz;

// Compute light direction in world space
float3 lightDir = normalize(lightPos - worldPos);

// Calculate diffuse lighting based on the normal and light direction (Lambertian model)
float diff = max(dot(normalWorldSpace, lightDir), 0.0f);

float3 ambient = 0.6 * obj.diffuse;
out.colour = (ambient + diff) * obj.diffuse;

TTE_SECTION_ELSE()

out.colour = obj.diffuse;

TTE_SECTION_BEGIN(!EFFECT_FLAT)

out.uv = in.uv;

TTE_SECTION_END()

TTE_SECTION_END()

return out;
}

TTE_SECTION_END()

// ======================================================================= PIXEL SHADER

TTE_SECTION_BEGIN(TTE_PIXEL)

TTE_SECTION_BEGIN(EFFECT_FLAT)

fragment float4 PixelMain(VertexOut in [[stage_in]])
{
return float4(in.colour, 1.0);
}

TTE_SECTION_ELSE()

fragment float4 PixelMain(VertexOut in [[stage_in]],
texture2d<float> texture TTE_TEXTURE(SamplerDiffuse),
sampler samplr TTE_SAMPLER(SamplerDiffuse))
{
float4 texColor = texture.sample(samplr, in.uv);
return texColor * float4(in.colour, 1.0f);
}

TTE_SECTION_END()

TTE_SECTION_END()
Binary file added Dev/Resources/Fonts/Def.ttf
Binary file not shown.
Binary file added Dev/Resources/Fonts/EditorFont.ttf
Binary file not shown.
Binary file added Dev/Resources/Fonts/FallbackFont.ttf
Binary file not shown.
Loading