X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Frenderer.cpp;h=68b7927dcb7067c0e3331c33f3f09bab1bf6a04a;hp=29db99232cd48a8a9e946b12f9326d32fb0e23a8;hb=2b2676392aff2eb6b38c3e463cc67f4d67a4ef8b;hpb=669e9bfc18d2f5e28a9c715e1a69b7637a2d9c8b diff --git a/source/render/renderer.cpp b/source/render/renderer.cpp index 29db9923..68b7927d 100644 --- a/source/render/renderer.cpp +++ b/source/render/renderer.cpp @@ -161,6 +161,21 @@ void Renderer::set_face_cull(CullMode cull) state->face_cull = cull; } +void Renderer::set_depth_test(const DepthTest *dt) +{ + state->depth_test = dt; +} + +void Renderer::set_stencil_test(const StencilTest *st) +{ + state->stencil_test = st; +} + +void Renderer::set_blend(const Blend *b) +{ + state->blend = b; +} + void Renderer::set_object_lod_bias(unsigned b) { state->object_lod_bias = b; @@ -282,6 +297,10 @@ void Renderer::apply_state() changed &= ~SHADER_DATA; } + pipeline_state.set_depth_test(state->depth_test); + pipeline_state.set_stencil_test(state->stencil_test); + pipeline_state.set_blend(state->blend); + pipeline_state.apply(); } @@ -310,6 +329,9 @@ Renderer::State::State(): vertex_setup(0), front_face(NON_MANIFOLD), face_cull(NO_CULL), + depth_test(0), + stencil_test(0), + blend(0), object_lod_bias(0) { }