Clean-up and deinit proc
This commit is contained in:
@@ -171,6 +171,7 @@ Shader_Info :: struct {
|
||||
}
|
||||
|
||||
Shader :: struct {
|
||||
compiled : bool;
|
||||
type : Shader_Type;
|
||||
backend_shader : Backend_Shader;
|
||||
defines : [..] string;
|
||||
@@ -720,6 +721,13 @@ init_default_pipelines :: () {
|
||||
|
||||
engine.renderer.default_pipelines.message_text = create_pipeline_state(renderer, vs, ps, layout, params, blend_type=.TRANSPARENT);
|
||||
}
|
||||
|
||||
{
|
||||
vs := create_vertex_shader_from_source(engine.renderer, FALLBACK_SHADER, "VS", mesh_data_types = .[.POSITION]);
|
||||
ps := create_pixel_shader_from_source(engine.renderer, FALLBACK_SHADER, "PS");
|
||||
|
||||
projectile_pipeline = create_pipeline_state2(engine.renderer, vs, ps, blend_type=.OPAQUE);
|
||||
}
|
||||
}
|
||||
|
||||
init_default_meshes :: () {
|
||||
@@ -879,14 +887,17 @@ create_shader :: (using renderer: *Renderer, path: string, entry_point: string,
|
||||
|
||||
backend_shader, info, success := create_backend_shader(engine.renderer.backend, path, entry_point, shader_type, defines);
|
||||
|
||||
if success {
|
||||
shader.info = info;
|
||||
shader.backend_shader = backend_shader;
|
||||
array_add(*shaders, shader);
|
||||
return xx shaders.count;
|
||||
if !success {
|
||||
log_error("Error: Failed compiling shader '%'\n", path);
|
||||
}
|
||||
|
||||
return 0;
|
||||
shader.info = info;
|
||||
shader.compiled = success;
|
||||
shader.backend_shader = backend_shader;
|
||||
array_add(*shaders, shader);
|
||||
|
||||
return xx shaders.count;
|
||||
|
||||
}
|
||||
|
||||
reload_shader :: (using renderer: *Renderer, shader: *Shader) {
|
||||
@@ -922,14 +933,16 @@ create_shader_from_source :: (using renderer: *Renderer, name: string, source: s
|
||||
|
||||
backend_shader, info, success := create_backend_shader_from_source(engine.renderer.backend, name, source, entry_point, shader_type, defines);
|
||||
|
||||
if success {
|
||||
shader.info = info;
|
||||
shader.backend_shader = backend_shader;
|
||||
array_add(*shaders, shader);
|
||||
return xx shaders.count;
|
||||
if !success {
|
||||
log_error("Error: Failed compiling shader '%'\n", name);
|
||||
}
|
||||
|
||||
return 0;
|
||||
shader.info = info;
|
||||
shader.compiled = success;
|
||||
shader.backend_shader = backend_shader;
|
||||
array_add(*shaders, shader);
|
||||
return xx shaders.count;
|
||||
|
||||
}
|
||||
|
||||
create_vertex_shader :: #bake_arguments create_shader(shader_type=.VERTEX);
|
||||
@@ -1067,7 +1080,7 @@ create_sampler :: (using renderer: *Renderer, filter: Sampling_Filter = .LINEAR,
|
||||
return 0;
|
||||
}
|
||||
|
||||
create_pipeline_state2 :: (using renderer: *Renderer, vs: Shader_Handle, ps: Shader_Handle, blend_type: Blend_Type = .OPAQUE) -> Pipeline_State_Handle {
|
||||
create_pipeline_state :: (using renderer: *Renderer, vs: Shader_Handle, ps: Shader_Handle, blend_type: Blend_Type = .OPAQUE) -> Pipeline_State_Handle {
|
||||
pipeline_state : Pipeline_State;
|
||||
pipeline_state.is_new = true;
|
||||
pipeline_state.vs = vs;
|
||||
@@ -1688,3 +1701,26 @@ file_change_callback :: (watcher: *File_Watcher(string), change: *File_Change, u
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FALLBACK_SHADER :: #string DONE
|
||||
cbuffer Model : register(b0)
|
||||
{
|
||||
float4x4 model;
|
||||
};
|
||||
|
||||
struct PSInput {
|
||||
float4 position : SV_POSITION;
|
||||
};
|
||||
|
||||
PSInput VS(float3 pos : POSITION) {
|
||||
PSInput input;
|
||||
|
||||
input.position = mul(float4(pos, 1.0), model);
|
||||
|
||||
return input;
|
||||
}
|
||||
|
||||
float4 PS(PSInput input) : SV_Target {
|
||||
return float4(1,0,1,1);
|
||||
}
|
||||
DONE
|
||||
|
||||
Reference in New Issue
Block a user