use '.g' & '.gh' extensions for shader source files
This commit is contained in:
parent
b8ba0d7ec0
commit
a54b9c62c8
@ -6,7 +6,8 @@ pushd build
|
||||
|
||||
for %%a in (%*) do set "%%a=1"
|
||||
set program_build_cmd=meta.exe %*
|
||||
set meta_build_cmd=cl.exe ../src/meta/meta.c -Od -Z7 -nologo -diagnostics:column -WX -link -DEBUG:FULL -INCREMENTAL:NO
|
||||
set meta_build_warnings=-W4 -WX -wd4244 -wd4201 -wd4324 -wd4100 -wd4101 -wd4189
|
||||
set meta_build_cmd=cl.exe ../src/meta/meta.c -Od -Z7 -nologo -diagnostics:column %meta_build_warnings% -link -DEBUG:FULL -INCREMENTAL:NO
|
||||
set meta_rebuild_code=1317212284
|
||||
|
||||
if "%--force_meta_build%"=="1" (
|
||||
|
||||
@ -54,10 +54,10 @@
|
||||
//- Language
|
||||
#if defined(__HLSL_VERSION)
|
||||
#define IsLanguageC 0
|
||||
#define IsLanguageHlsl 1
|
||||
#define IsLanguageG 1
|
||||
#else
|
||||
#define IsLanguageC 1
|
||||
#define IsLanguageHlsl 0
|
||||
#define IsLanguageG 0
|
||||
#endif
|
||||
|
||||
//- Platform system
|
||||
@ -73,7 +73,7 @@
|
||||
#define IsPlatformWindows 0
|
||||
#define IsPlatformMac 0
|
||||
#define IsPlatformLinux 1
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define IsPlatformWindows 0
|
||||
#define IsPlatformMac 0
|
||||
#define IsPlatformLinux 0
|
||||
@ -88,7 +88,7 @@
|
||||
#elif defined(_M_ARM64) || defined(__aarch64__)
|
||||
#define IsArchX64 0
|
||||
#define IsArchArm64 1
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define IsArchX64 0
|
||||
#define IsArchArm64 0
|
||||
#else
|
||||
@ -187,7 +187,7 @@
|
||||
#pragma section(".rdata$", read)
|
||||
#define Readonly __declspec(allocate(".rdata$"))
|
||||
#else
|
||||
#define Readonly __declspec(allocate(".rdata"))
|
||||
#define Readonly __declspec(allocate(".rdata$"))
|
||||
#endif
|
||||
#elif IsPlatformMac
|
||||
#define Readonly __attribute((section("__TEXT,__const")))
|
||||
@ -196,24 +196,15 @@
|
||||
#endif
|
||||
|
||||
//- Thread-local
|
||||
|
||||
#if IsCompilerMsvc
|
||||
#define ThreadLocal __declspec(thread)
|
||||
#endif
|
||||
|
||||
|
||||
//- Memory barriers
|
||||
//- Compiler memory barriers
|
||||
#if IsCompilerMsvc
|
||||
#define WriteBarrier() _WriteBarrier()
|
||||
#define ReadBarrier() _ReadBarrier()
|
||||
#elif defined(__x86_64) || defined(__i386__)
|
||||
#define WriteBarrier() __asm__ volatile("" ::: "memory")
|
||||
#define ReadBarrier() __asm__ volatile("" ::: "memory")
|
||||
#elif IsLanguageHlsl
|
||||
#define WriteBarrier()
|
||||
#define ReadBarrier()
|
||||
#else
|
||||
#error Memory barriers not implemented
|
||||
#define CompilerBarrier() _ReadWriteBarrier()
|
||||
#elif IsArchX64
|
||||
#define CompilerBarrier() __asm__ volatile("" ::: "memory")
|
||||
#endif
|
||||
|
||||
//- Fallthrough
|
||||
@ -461,7 +452,7 @@
|
||||
#define Packed(s) __pragma(pack(push, 1)) s __pragma(pack(pop))
|
||||
#elif IsCompilerClang
|
||||
#define Packed(s) s __attribute((__packed__))
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define Packed(s) s
|
||||
#endif
|
||||
|
||||
@ -492,7 +483,7 @@
|
||||
typedef i8 b8;
|
||||
typedef u32 b32;
|
||||
Struct(U128) { u64 hi; u64 lo; };
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
typedef int i32;
|
||||
typedef uint u32;
|
||||
typedef float f32;
|
||||
@ -558,37 +549,34 @@
|
||||
StaticAssert(alignof(Atomic64Padded) == CachelineSize && sizeof(Atomic64Padded) % CachelineSize == 0);
|
||||
|
||||
#if IsPlatformWindows && IsArchX64
|
||||
//- Memory barriers
|
||||
# define CompilerMemoryBarrier() _ReadWriteBarrier()
|
||||
# define HardwareMemoryBarrier() MemoryBarrier()
|
||||
//- 8 bit atomic operations
|
||||
ForceInline i8 Atomic8Fetch (Atomic8 *x) { i8 result = (x)->_v; CompilerMemoryBarrier(); return result; }
|
||||
ForceInline void Atomic8Set (Atomic8 *x, i8 e) { CompilerMemoryBarrier(); (x)->_v = e; }
|
||||
ForceInline i8 Atomic8FetchSet (Atomic8 *x, i8 e) { return (i8)_InterlockedExchange8((volatile char *)&(x)->_v, (e)); }
|
||||
ForceInline i8 Atomic8FetchTestSet (Atomic8 *x, i8 c, i8 e) { return (i8)_InterlockedCompareExchange8((volatile char *)&(x)->_v, (e), (c)); }
|
||||
ForceInline i8 Atomic8FetchXor (Atomic8 *x, i8 c) { return (i8)_InterlockedXor8((volatile char *)&(x)->_v, (c)); }
|
||||
ForceInline i8 Atomic8FetchAdd (Atomic8 *x, i8 a) { return (i8)_InterlockedExchangeAdd8((volatile char *)&(x)->_v, (a)); }
|
||||
ForceInline i8 Atomic8Fetch (Atomic8 *x) { CompilerBarrier(); i8 result = x->_v; CompilerBarrier(); return result; }
|
||||
ForceInline void Atomic8Set (Atomic8 *x, i8 e) { CompilerBarrier(); x->_v = e; CompilerBarrier(); }
|
||||
ForceInline i8 Atomic8FetchSet (Atomic8 *x, i8 e) { return (i8)_InterlockedExchange8((volatile char *)&x->_v, e); }
|
||||
ForceInline i8 Atomic8FetchTestSet (Atomic8 *x, i8 c, i8 e) { return (i8)_InterlockedCompareExchange8((volatile char *)&x->_v, e, c); }
|
||||
ForceInline i8 Atomic8FetchXor (Atomic8 *x, i8 c) { return (i8)_InterlockedXor8((volatile char *)&x->_v, c); }
|
||||
ForceInline i8 Atomic8FetchAdd (Atomic8 *x, i8 a) { return (i8)_InterlockedExchangeAdd8((volatile char *)&x->_v, a); }
|
||||
//- 16 bit atomic operations
|
||||
ForceInline i16 Atomic16Fetch (Atomic16 *x) { i16 result = (x)->_v; CompilerMemoryBarrier(); return result; }
|
||||
ForceInline void Atomic16Set (Atomic16 *x, i16 e) { CompilerMemoryBarrier(); (x)->_v = e; }
|
||||
ForceInline i16 Atomic16FetchSet (Atomic16 *x, i16 e) { return (i16)_InterlockedExchange16(&(x)->_v, (e)); }
|
||||
ForceInline i16 Atomic16FetchTestSet (Atomic16 *x, i16 c, i16 e) { return (i16)_InterlockedCompareExchange16(&(x)->_v, (e), (c)); }
|
||||
ForceInline i16 Atomic16FetchXor (Atomic16 *x, i16 c) { return (i16)_InterlockedXor16(&(x)->_v, (c)); }
|
||||
ForceInline i16 Atomic16FetchAdd (Atomic16 *x, i16 a) { return (i16)_InterlockedExchangeAdd16(&(x)->_v, (a)); }
|
||||
ForceInline i16 Atomic16Fetch (Atomic16 *x) { CompilerBarrier(); i16 result = x->_v; CompilerBarrier(); return result; }
|
||||
ForceInline void Atomic16Set (Atomic16 *x, i16 e) { CompilerBarrier(); x->_v = e; CompilerBarrier(); }
|
||||
ForceInline i16 Atomic16FetchSet (Atomic16 *x, i16 e) { return (i16)_InterlockedExchange16(&x->_v, e); }
|
||||
ForceInline i16 Atomic16FetchTestSet (Atomic16 *x, i16 c, i16 e) { return (i16)_InterlockedCompareExchange16(&x->_v, e, c); }
|
||||
ForceInline i16 Atomic16FetchXor (Atomic16 *x, i16 c) { return (i16)_InterlockedXor16(&x->_v, c); }
|
||||
ForceInline i16 Atomic16FetchAdd (Atomic16 *x, i16 a) { return (i16)_InterlockedExchangeAdd16(&x->_v, a); }
|
||||
//- 32 bit atomic operations
|
||||
ForceInline i32 Atomic32Fetch (Atomic32 *x) { i32 result = (x)->_v; CompilerMemoryBarrier(); return result; }
|
||||
ForceInline void Atomic32Set (Atomic32 *x, i32 e) { CompilerMemoryBarrier(); (x)->_v = e; }
|
||||
ForceInline i32 Atomic32FetchSet (Atomic32 *x, i32 e) { return (i32)_InterlockedExchange((volatile long *)&(x)->_v, (e)); }
|
||||
ForceInline i32 Atomic32FetchTestSet (Atomic32 *x, i32 c, i32 e) { return (i32)_InterlockedCompareExchange((volatile long *)&(x)->_v, (e), (c)); }
|
||||
ForceInline i32 Atomic32FetchXor (Atomic32 *x, i32 c) { return (i32)_InterlockedXor((volatile long *)&(x)->_v, (c)); }
|
||||
ForceInline i32 Atomic32FetchAdd (Atomic32 *x, i32 a) { return (i32)_InterlockedExchangeAdd((volatile long *)&(x)->_v, (a)); }
|
||||
ForceInline i32 Atomic32Fetch (Atomic32 *x) { CompilerBarrier(); i32 result = x->_v; CompilerBarrier(); return result; }
|
||||
ForceInline void Atomic32Set (Atomic32 *x, i32 e) { CompilerBarrier(); x->_v = e; CompilerBarrier(); }
|
||||
ForceInline i32 Atomic32FetchSet (Atomic32 *x, i32 e) { return (i32)_InterlockedExchange((volatile long *)&x->_v, e); }
|
||||
ForceInline i32 Atomic32FetchTestSet (Atomic32 *x, i32 c, i32 e) { return (i32)_InterlockedCompareExchange((volatile long *)&x->_v, e, c); }
|
||||
ForceInline i32 Atomic32FetchXor (Atomic32 *x, i32 c) { return (i32)_InterlockedXor((volatile long *)&x->_v, c); }
|
||||
ForceInline i32 Atomic32FetchAdd (Atomic32 *x, i32 a) { return (i32)_InterlockedExchangeAdd((volatile long *)&x->_v, a); }
|
||||
//- 64 bit atomic operations
|
||||
ForceInline i64 Atomic64Fetch (Atomic64 *x) { i64 result = (x)->_v; CompilerMemoryBarrier(); return result; }
|
||||
ForceInline void Atomic64Set (Atomic64 *x, i64 e) { CompilerMemoryBarrier(); (x)->_v = e; }
|
||||
ForceInline i64 Atomic64FetchSet (Atomic64 *x, i64 e) { return (i64)_InterlockedExchange64(&(x)->_v, (e)); }
|
||||
ForceInline i64 Atomic64FetchTestSet (Atomic64 *x, i64 c, i64 e) { return (i64)_InterlockedCompareExchange64(&(x)->_v, (e), (c)); }
|
||||
ForceInline i64 Atomic64FetchXor (Atomic64 *x, i64 c) { return (i64)_InterlockedXor64(&(x)->_v, (c)); }
|
||||
ForceInline i64 Atomic64FetchAdd (Atomic64 *x, i64 a) { return (i64)_InterlockedExchangeAdd64(&(x)->_v, (a)); }
|
||||
ForceInline i64 Atomic64Fetch (Atomic64 *x) { CompilerBarrier(); i64 result = x->_v; CompilerBarrier(); return result; }
|
||||
ForceInline void Atomic64Set (Atomic64 *x, i64 e) { CompilerBarrier(); x->_v = e; CompilerBarrier(); }
|
||||
ForceInline i64 Atomic64FetchSet (Atomic64 *x, i64 e) { return (i64)_InterlockedExchange64(&x->_v, e); }
|
||||
ForceInline i64 Atomic64FetchTestSet (Atomic64 *x, i64 c, i64 e) { return (i64)_InterlockedCompareExchange64(&x->_v, e, c); }
|
||||
ForceInline i64 Atomic64FetchXor (Atomic64 *x, i64 c) { return (i64)_InterlockedXor64(&x->_v, c); }
|
||||
ForceInline i64 Atomic64FetchAdd (Atomic64 *x, i64 a) { return (i64)_InterlockedExchangeAdd64(&x->_v, a); }
|
||||
#else
|
||||
#error Atomics not implemented
|
||||
#endif
|
||||
@ -717,7 +705,7 @@
|
||||
Struct(VertexShader) { ResourceKey resource; };
|
||||
Struct(PixelShader) { ResourceKey resource; };
|
||||
Struct(ComputeShader) { ResourceKey resource; };
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define Semantic(t, n) t n : n
|
||||
#define ComputeShader(name, x) [numthreads(x, 1, 1)] void name(Semantic(u32, SV_DispatchThreadID))
|
||||
#define ComputeShader2D(name, x, y) [numthreads(x, y, 1)] void name(Semantic(Vec2U32, SV_DispatchThreadID))
|
||||
@ -772,7 +760,7 @@ Struct(SamplerStateHandle) { u32 v; };
|
||||
StaticAssert(slot < MaxDeclarableShaderConstants); \
|
||||
Enum(name##__shaderconstantenum) { name = slot }; \
|
||||
Struct(name##__shaderconstanttype) { type v; }
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define ShaderConstant(type, name, slot) cbuffer name : register(b##slot) { type name; }
|
||||
|
||||
cbuffer IsAsyncCompute : register(b31) { b32 IsAsyncCompute; }
|
||||
@ -3,7 +3,7 @@
|
||||
// that it may be depended on by the metaprogram.
|
||||
|
||||
//- Api
|
||||
#include "base.h"
|
||||
#include "base.cgh"
|
||||
#if IsLanguageC
|
||||
# include "base_intrinsics.h"
|
||||
# include "base_memory.h"
|
||||
@ -26,8 +26,8 @@
|
||||
# include "base_bitbuff.h"
|
||||
# include "base_resource.h"
|
||||
# include "base_controller.h"
|
||||
#elif IsLanguageHlsl
|
||||
# include "base_gpu.hlsl"
|
||||
#elif IsLanguageG
|
||||
# include "base_shader.gh"
|
||||
#endif
|
||||
|
||||
//- Impl
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
////////////////////////////////////////////////////////////
|
||||
//~ Gpu math types
|
||||
//~ Shader math types
|
||||
|
||||
#define Pi ((f32)3.14159265358979323846)
|
||||
#define Tau ((f32)6.28318530717958647693)
|
||||
@ -5,13 +5,13 @@
|
||||
|
||||
//- Api
|
||||
@IncludeC gpu_core.h
|
||||
@IncludeC gpu_shader_extras.h
|
||||
@IncludeC gpu_shader_extras.cgh
|
||||
@IncludeC gpu_common.h
|
||||
@IncludeGpu gpu_shader_extras.h
|
||||
@IncludeG gpu_shader_extras.cgh
|
||||
@IncludeG gpu_shader_extras.gh
|
||||
|
||||
//- Impl
|
||||
@IncludeC gpu_common.c
|
||||
@IncludeGpu gpu_shader_extras.hlsl
|
||||
|
||||
//- Dx12 impl
|
||||
@DefaultWindowsImpl gpu_dx12
|
||||
|
||||
@ -83,7 +83,7 @@ GPU_ResourceHandle GPU_PushBufferFromCpu(GPU_ArenaHandle gpu_arena, GPU_CommandL
|
||||
GPU_MemorySync(
|
||||
cl, buffer,
|
||||
GPU_Stage_Copy, GPU_Access_CopyWrite,
|
||||
GPU_Stage_AllShading, GPU_Access_ShaderRead
|
||||
GPU_Stage_All, GPU_Access_All
|
||||
);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
|
||||
#if IsLanguageC
|
||||
#define GPU_SharedHandle(type, v) ((type) { (v) })
|
||||
#elif IsLanguageHlsl
|
||||
#elif IsLanguageG
|
||||
#define GPU_SharedHandle(type, v) (type(v))
|
||||
#endif
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
* https://therealmjp.github.io/posts/hlsl-printf/
|
||||
*/
|
||||
|
||||
template<typename T> u32 U32FromChar(in T c)
|
||||
template<typename T>
|
||||
u32 U32FromChar(in T c)
|
||||
{
|
||||
if(c == ' ')
|
||||
return 32;
|
||||
@ -38,7 +38,7 @@ LineCol LineColFromPos(String data, i64 pos)
|
||||
{
|
||||
TempArena scratch = BeginScratchNoConflict();
|
||||
LineCol result = ZI;
|
||||
for (u64 cur = 0; cur < data.len && cur <= pos; ++cur)
|
||||
for (u64 cur = 0; cur < data.len && cur <= (u64)pos; ++cur)
|
||||
{
|
||||
u8 c = data.text[cur];
|
||||
if (c == '\n')
|
||||
@ -356,7 +356,7 @@ void BuildEntryPoint(WaveLaneCtx *lane)
|
||||
PushStringToList(perm, &cp.warnings_msvc, Lit("-W4"));
|
||||
PushStringToList(perm, &cp.warnings_msvc, Lit("-WX"));
|
||||
// PushStringToList(perm, &cp.warnings_msvc, Lit("-we4013")); /* function undefined; assuming extern returning int */
|
||||
PushStringToList(perm, &cp.warnings_msvc, Lit("-we4668")); /* 'X' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif'
|
||||
PushStringToList(perm, &cp.warnings_msvc, Lit("-we4668")); /* 'X' is not defined as a preprocessor macro, replacing with '0' for '#if/#elif' */
|
||||
|
||||
/* Disable warnings */
|
||||
PushStringToList(perm, &cp.warnings_msvc, Lit("-wd4244")); /* 'function': conversion from 'int' to 'f32', possible loss of data */
|
||||
@ -437,8 +437,8 @@ void BuildEntryPoint(WaveLaneCtx *lane)
|
||||
/* TODO: Dispatch OS commands asynchronously */
|
||||
|
||||
String shader_store_name = Lit("ShadersStore");
|
||||
String c_out_file = F_GetFull(perm, StringF(perm, "%F_gen_c.c", FmtString(cmdline.leaf_layer_name)));
|
||||
String gpu_out_file = F_GetFull(perm, StringF(perm, "%F_gen_gpu.hlsl", FmtString(cmdline.leaf_layer_name)));
|
||||
String c_out_file = F_GetFull(perm, StringF(perm, "%F_gen.c", FmtString(cmdline.leaf_layer_name)));
|
||||
String gpu_out_file = F_GetFull(perm, StringF(perm, "%F_gen.g", FmtString(cmdline.leaf_layer_name)));
|
||||
|
||||
if (lane->idx == 0 && GetBuildStatus() == 0)
|
||||
{
|
||||
@ -462,7 +462,6 @@ void BuildEntryPoint(WaveLaneCtx *lane)
|
||||
|
||||
//- Generate C file
|
||||
{
|
||||
String c_out_file = F_GetFull(perm, StringF(perm, "%F_gen_c.c", FmtString(cmdline.leaf_layer_name)));
|
||||
StringList c_store_lines = ZI;
|
||||
StringList c_shader_lines = ZI;
|
||||
StringList c_include_lines = ZI;
|
||||
@ -663,7 +662,7 @@ void BuildEntryPoint(WaveLaneCtx *lane)
|
||||
switch (kind)
|
||||
{
|
||||
default: break;
|
||||
case M_EntryKind_IncludeGpu:
|
||||
case M_EntryKind_IncludeG:
|
||||
{
|
||||
if (arg0_tok->valid)
|
||||
{
|
||||
|
||||
@ -75,7 +75,7 @@ Enum(M_EntryKind)
|
||||
M_EntryKind_Layer,
|
||||
M_EntryKind_Dep,
|
||||
M_EntryKind_IncludeC,
|
||||
M_EntryKind_IncludeGpu,
|
||||
M_EntryKind_IncludeG,
|
||||
M_EntryKind_DefaultWindowsImpl,
|
||||
M_EntryKind_Startup,
|
||||
M_EntryKind_VertexShader,
|
||||
@ -88,7 +88,7 @@ Global Readonly char *M_entry_kind_rules[] = {
|
||||
[M_EntryKind_Layer] = "@Layer",
|
||||
[M_EntryKind_Dep] = "@Dep",
|
||||
[M_EntryKind_IncludeC] = "@IncludeC",
|
||||
[M_EntryKind_IncludeGpu] = "@IncludeGpu",
|
||||
[M_EntryKind_IncludeG] = "@IncludeG",
|
||||
[M_EntryKind_DefaultWindowsImpl] = "@DefaultWindowsImpl",
|
||||
[M_EntryKind_Startup] = "@Startup",
|
||||
[M_EntryKind_VertexShader] = "@VertexShader",
|
||||
|
||||
@ -84,7 +84,7 @@ String OS_ReadEntireFile(Arena *arena, OS_File file)
|
||||
for (;;)
|
||||
{
|
||||
u8 *chunk = PushStructsNoZero(arena, u8, chunk_size);
|
||||
u32 chunk_bytes_read = 0;
|
||||
DWORD chunk_bytes_read = 0;
|
||||
ReadFile(handle, chunk, chunk_size, &chunk_bytes_read, 0);
|
||||
result.len += chunk_bytes_read;
|
||||
if (chunk_bytes_read < chunk_size)
|
||||
@ -302,7 +302,7 @@ OS_CommandResult OS_RunCommand(Arena *arena, String cmd)
|
||||
{
|
||||
result.output.text = ArenaNext(arena, u8);
|
||||
b32 exit_code_valid = 0;
|
||||
i32 exit_code = 0;
|
||||
DWORD exit_code = 0;
|
||||
b32 stdout_finished = 0;
|
||||
while (!stdout_finished)
|
||||
{
|
||||
|
||||
@ -10,16 +10,16 @@
|
||||
|
||||
//- Api
|
||||
@IncludeC pp_vis_widgets.h
|
||||
@IncludeC pp_vis_shaders.h
|
||||
@IncludeC pp_vis_shaders.cgh
|
||||
@IncludeC pp_vis_draw.h
|
||||
@IncludeC pp_vis_core.h
|
||||
@IncludeGpu pp_vis_shaders.h
|
||||
@IncludeG pp_vis_shaders.cgh
|
||||
|
||||
//- Impl
|
||||
@IncludeC pp_vis_widgets.c
|
||||
@IncludeC pp_vis_draw.c
|
||||
@IncludeC pp_vis_core.c
|
||||
@IncludeGpu pp_vis_shaders.hlsl
|
||||
@IncludeG pp_vis_shaders.g
|
||||
|
||||
//- Embeds
|
||||
@EmbedDir V_Resources pp_vis_res
|
||||
|
||||
@ -20,9 +20,9 @@
|
||||
@IncludeC pp_ent.h
|
||||
@IncludeC pp_step.h
|
||||
@IncludeC pp_widgets.h
|
||||
@IncludeC pp_draw.h
|
||||
@IncludeC pp_draw.cgh
|
||||
@IncludeG pp_draw.cgh
|
||||
@IncludeC pp.h
|
||||
@IncludeGpu pp_draw.h
|
||||
|
||||
//- Impl
|
||||
@IncludeC pp_sim.c
|
||||
@ -32,7 +32,7 @@
|
||||
@IncludeC pp_step.c
|
||||
@IncludeC pp_widgets.c
|
||||
@IncludeC pp.c
|
||||
@IncludeGpu pp_draw.gpu
|
||||
@IncludeG pp_draw.g
|
||||
|
||||
//- Embeds
|
||||
@EmbedDir PP_Resources pp_res
|
||||
|
||||
@ -7,11 +7,11 @@
|
||||
|
||||
//- Api
|
||||
@IncludeC proto_shaders.h
|
||||
@IncludeGpu proto_shaders.h
|
||||
@IncludeG proto_shaders.h
|
||||
|
||||
//- Impl
|
||||
@IncludeC proto.c
|
||||
@IncludeGpu proto_shaders.hlsl
|
||||
@IncludeG proto_shaders.g
|
||||
|
||||
//- Shaders
|
||||
@ComputeShader PT_TestCS
|
||||
|
||||
@ -8,13 +8,13 @@
|
||||
//- Api
|
||||
@IncludeC ui_core.h
|
||||
@IncludeC ui_extras.h
|
||||
@IncludeC ui_shaders.h
|
||||
@IncludeGpu ui_shaders.h
|
||||
@IncludeC ui_shaders.cgh
|
||||
@IncludeG ui_shaders.cgh
|
||||
|
||||
//- Impl
|
||||
@IncludeC ui_core.c
|
||||
@IncludeC ui_extras.c
|
||||
@IncludeGpu ui_shaders.hlsl
|
||||
@IncludeG ui_shaders.g
|
||||
|
||||
//- Shaders
|
||||
@VertexShader UI_DRectVS
|
||||
|
||||
Loading…
Reference in New Issue
Block a user