Blending stuff
This commit is contained in:
@@ -311,7 +311,7 @@ d3d_compile :: (shader: string, source_name: string, pDefines: []string, pInclud
|
||||
return bytecode, pCode, errors, hr;
|
||||
}
|
||||
|
||||
compile_shader :: (source: string, entry_point: string, shader_model: string, defines: [] string = string.[]) -> string, *ID3DBlob, HRESULT {
|
||||
compile_shader :: (name: string, source: string, entry_point: string, shader_model: string, defines: [] string = string.[]) -> string, *ID3DBlob, HRESULT {
|
||||
flags := D3DCOMPILE.ENABLE_STRICTNESS;
|
||||
|
||||
#if DEBUG {
|
||||
@@ -331,7 +331,7 @@ compile_shader :: (source: string, entry_point: string, shader_model: string, de
|
||||
|
||||
if FAILED(hr) {
|
||||
free(bytecode);
|
||||
if errors print ("Error msg: %\n", errors);
|
||||
if errors print ("Shader compilation error in shader '%': %\n", name, errors);
|
||||
return "", null, hr;
|
||||
}
|
||||
|
||||
@@ -568,13 +568,13 @@ get_shader_info_from_blob :: (blob: *ID3DBlob, shader_type: Shader_Type) -> Shad
|
||||
return shader_info;
|
||||
}
|
||||
|
||||
create_backend_shader_from_source :: (using renderer: *D3D11_Backend, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[]) -> Backend_Shader #must, Shader_Info, bool {
|
||||
create_backend_shader_from_source :: (using renderer: *D3D11_Backend, name: string, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[]) -> Backend_Shader #must, Shader_Info, bool {
|
||||
shader_model : string;
|
||||
|
||||
if shader_type == .VERTEX shader_model = "vs_4_0";
|
||||
else shader_model = "ps_4_0";
|
||||
|
||||
bytecode, blob, hr := compile_shader(source, entry_point, shader_model, defines);
|
||||
bytecode, blob, hr := compile_shader(name, source, entry_point, shader_model, defines);
|
||||
|
||||
if FAILED(hr) return .{}, .{}, false;
|
||||
|
||||
@@ -610,7 +610,7 @@ create_backend_shader :: (using renderer: *D3D11_Backend, path: string, entry_po
|
||||
if !content return .{}, .{}, false;
|
||||
defer free(content);
|
||||
|
||||
shader, info, success := create_backend_shader_from_source(renderer, content, entry_point, shader_type, defines);
|
||||
shader, info, success := create_backend_shader_from_source(renderer, path, content, entry_point, shader_type, defines);
|
||||
|
||||
return shader, info, success;
|
||||
}
|
||||
@@ -620,18 +620,18 @@ reload_backend_shader :: (using renderer: *D3D11_Backend, path: string, entry_po
|
||||
if !content return .{}, false;
|
||||
defer free(content);
|
||||
|
||||
shader, success := reload_backend_shader_from_source(renderer, content, entry_point, shader_type, defines);
|
||||
shader, success := reload_backend_shader_from_source(renderer, path, content, entry_point, shader_type, defines);
|
||||
|
||||
return shader, success;
|
||||
}
|
||||
|
||||
reload_backend_shader_from_source :: (using renderer: *D3D11_Backend, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[]) -> Backend_Shader #must, bool {
|
||||
reload_backend_shader_from_source :: (using renderer: *D3D11_Backend, name: string, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[]) -> Backend_Shader #must, bool {
|
||||
shader_model : string;
|
||||
|
||||
if shader_type == .VERTEX shader_model = "vs_4_0";
|
||||
else shader_model = "ps_4_0";
|
||||
|
||||
bytecode, blob, hr := compile_shader(source, entry_point, shader_model, defines);
|
||||
bytecode, blob, hr := compile_shader(name, source, entry_point, shader_model, defines);
|
||||
|
||||
if FAILED(hr) return .{}, false;
|
||||
|
||||
@@ -676,11 +676,12 @@ create_backend_blend_state :: (using renderer: *D3D11_Backend, type: Blend_Type)
|
||||
rtbd.DestBlend = .D3D11_BLEND_INV_SRC_ALPHA;
|
||||
rtbd.BlendOp = .D3D11_BLEND_OP_ADD;
|
||||
rtbd.SrcBlendAlpha = .D3D11_BLEND_ONE;
|
||||
rtbd.DestBlendAlpha = .D3D11_BLEND_ZERO;
|
||||
rtbd.BlendOpAlpha = .D3D11_BLEND_OP_ADD;
|
||||
rtbd.DestBlendAlpha = .D3D11_BLEND_DEST_ALPHA;
|
||||
rtbd.BlendOpAlpha = .D3D11_BLEND_OP_MAX;
|
||||
rtbd.RenderTargetWriteMask = xx D3D11_COLOR_WRITE_ENABLE.ALL;
|
||||
|
||||
blend_desc.AlphaToCoverageEnable = .FALSE;
|
||||
blend_desc.IndependentBlendEnable = .FALSE;
|
||||
blend_desc.RenderTarget[0] = rtbd;
|
||||
|
||||
success := !FAILED(ID3D11Device_CreateBlendState(d3d_device, *blend_desc, *blend_state));
|
||||
@@ -1314,11 +1315,6 @@ render :: (backend: *D3D11_Backend, command_buffer: *Render_Command_Buffer) {
|
||||
case .OPAQUE;
|
||||
ID3D11DeviceContext_OMSetBlendState(d3d_context, null, null, 0xffffffff);
|
||||
case .TRANSPARENT;
|
||||
blend_factor : [4]float;
|
||||
blend_factor[0] = 0.0;
|
||||
blend_factor[1] = 0.0;
|
||||
blend_factor[2] = 0.0;
|
||||
blend_factor[3] = 0.0;
|
||||
ID3D11DeviceContext_OMSetBlendState(d3d_context, it.set_pipeline_state.blend_state, null, 0xffffffff);
|
||||
}
|
||||
case .SET_VERTEX_BUFFER;
|
||||
|
||||
@@ -874,7 +874,7 @@ reload_shader :: (using renderer: *Renderer, shader: *Shader) {
|
||||
}
|
||||
}
|
||||
|
||||
create_shader_from_source :: (using renderer: *Renderer, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[], mesh_data_types: [] Mesh_Vertex_Data_Type = .[.POSITION, .NORMAL, .TEXCOORD]) -> Shader_Handle {
|
||||
create_shader_from_source :: (using renderer: *Renderer, name: string, source: string, entry_point: string, shader_type: Shader_Type, defines: [] string = string.[], mesh_data_types: [] Mesh_Vertex_Data_Type = .[.POSITION, .NORMAL, .TEXCOORD]) -> Shader_Handle {
|
||||
shader : Shader;
|
||||
shader.type = shader_type;
|
||||
|
||||
@@ -893,7 +893,7 @@ create_shader_from_source :: (using renderer: *Renderer, source: string, entry_p
|
||||
}
|
||||
}
|
||||
|
||||
backend_shader, info, success := create_backend_shader_from_source(engine.renderer.backend, source, entry_point, shader_type, defines);
|
||||
backend_shader, info, success := create_backend_shader_from_source(engine.renderer.backend, name, source, entry_point, shader_type, defines);
|
||||
|
||||
if success {
|
||||
shader.info = info;
|
||||
|
||||
Reference in New Issue
Block a user