| @@ -78,9 +78,9 @@ public: | |||
| m_fbo->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| @@ -92,8 +92,8 @@ public: | |||
| } | |||
| /* FIXME: we should just disable depth test in the shader */ | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetDepthFunc(DepthFunc::Disabled); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.depth_func(DepthFunc::Disabled); | |||
| /* FIXME: this no longer works because we don’t restore the | |||
| * actually bound framebuffer. */ | |||
| @@ -146,9 +146,9 @@ public: | |||
| m_fbos.last().m1->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| m_fbos.last().m1->Unbind(); | |||
| @@ -157,9 +157,9 @@ public: | |||
| temp_buffer = std::make_shared<Framebuffer>(Video::GetSize()); | |||
| temp_buffer->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| temp_buffer->Unbind(); | |||
| @@ -221,9 +221,9 @@ public: | |||
| temp_buffer->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| temp_buffer->Unbind(); | |||
| @@ -251,9 +251,9 @@ public: | |||
| m_fbos[f].m1->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| m_fbos[f].m1->Unbind(); | |||
| @@ -304,9 +304,9 @@ public: | |||
| //m_timer = 1.0f; | |||
| m_fbos[m_cur_fbo].m1->Bind(); | |||
| { | |||
| RenderContext rc(scene.get_renderer()); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(scene.get_renderer()); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| scene.get_renderer()->Clear(ClearMask::Color | ClearMask::Depth); | |||
| } | |||
| m_fbos[m_cur_fbo].m1->Unbind(); | |||
| @@ -47,7 +47,7 @@ private: | |||
| class RenderContextData | |||
| { | |||
| friend class RenderContext; | |||
| friend class render_context; | |||
| private: | |||
| tracked_var<ibox2> m_viewport; | |||
| @@ -66,16 +66,16 @@ private: | |||
| }; | |||
| /* | |||
| * Public RenderContext class | |||
| * Public render_context class | |||
| */ | |||
| RenderContext::RenderContext(std::shared_ptr<Renderer> renderer) | |||
| render_context::render_context(std::shared_ptr<Renderer> renderer) | |||
| : m_renderer(renderer), | |||
| m_data(std::make_unique<RenderContextData>()) | |||
| { | |||
| } | |||
| RenderContext::~RenderContext() | |||
| render_context::~render_context() | |||
| { | |||
| if (m_data->m_viewport.is_dirty()) | |||
| m_renderer->SetViewport(m_data->m_viewport.get()); | |||
| @@ -110,7 +110,7 @@ RenderContext::~RenderContext() | |||
| m_renderer->SetScissorMode(m_data->m_scissor_mode.get()); | |||
| } | |||
| void RenderContext::SetViewport(ibox2 viewport) | |||
| void render_context::viewport(ibox2 viewport) | |||
| { | |||
| if (!m_data->m_viewport.is_dirty()) | |||
| m_data->m_viewport.set(m_renderer->GetViewport()); | |||
| @@ -118,12 +118,12 @@ void RenderContext::SetViewport(ibox2 viewport) | |||
| m_renderer->SetViewport(viewport); | |||
| } | |||
| ibox2 RenderContext::GetViewport() | |||
| ibox2 render_context::viewport() | |||
| { | |||
| return m_renderer->GetViewport(); | |||
| } | |||
| void RenderContext::SetClearColor(vec4 color) | |||
| void render_context::clear_color(vec4 color) | |||
| { | |||
| if (!m_data->m_clear_color.is_dirty()) | |||
| m_data->m_clear_color.set(m_renderer->GetClearColor()); | |||
| @@ -131,12 +131,12 @@ void RenderContext::SetClearColor(vec4 color) | |||
| m_renderer->SetClearColor(color); | |||
| } | |||
| vec4 RenderContext::GetClearColor() | |||
| vec4 render_context::clear_color() | |||
| { | |||
| return m_renderer->GetClearColor(); | |||
| } | |||
| void RenderContext::SetClearDepth(float depth) | |||
| void render_context::clear_depth(float depth) | |||
| { | |||
| if (!m_data->m_clear_depth.is_dirty()) | |||
| m_data->m_clear_depth.set(m_renderer->GetClearDepth()); | |||
| @@ -144,12 +144,12 @@ void RenderContext::SetClearDepth(float depth) | |||
| m_renderer->SetClearDepth(depth); | |||
| } | |||
| float RenderContext::GetClearDepth() | |||
| float render_context::clear_depth() | |||
| { | |||
| return m_renderer->GetClearDepth(); | |||
| } | |||
| void RenderContext::SetAlphaFunc(AlphaFunc func, float alpha) | |||
| void render_context::alpha_func(AlphaFunc func, float alpha) | |||
| { | |||
| if (!m_data->m_alpha_func.is_dirty()) | |||
| m_data->m_alpha_func.set(m_renderer->GetAlphaFunc()); | |||
| @@ -159,17 +159,17 @@ void RenderContext::SetAlphaFunc(AlphaFunc func, float alpha) | |||
| m_renderer->SetAlphaFunc(func, alpha); | |||
| } | |||
| AlphaFunc RenderContext::GetAlphaFunc() | |||
| AlphaFunc render_context::alpha_func() | |||
| { | |||
| return m_renderer->GetAlphaFunc(); | |||
| } | |||
| float RenderContext::GetAlphaValue() | |||
| float render_context::alpha_value() | |||
| { | |||
| return m_renderer->GetAlphaValue(); | |||
| } | |||
| void RenderContext::SetBlendEquation(BlendEquation rgb, BlendEquation alpha) | |||
| void render_context::blend_equation(BlendEquation rgb, BlendEquation alpha) | |||
| { | |||
| if (!m_data->m_blend_rgb.is_dirty()) | |||
| m_data->m_blend_rgb.set(m_renderer->GetBlendEquationRgb()); | |||
| @@ -179,17 +179,17 @@ void RenderContext::SetBlendEquation(BlendEquation rgb, BlendEquation alpha) | |||
| m_renderer->SetBlendEquation(rgb, alpha); | |||
| } | |||
| BlendEquation RenderContext::GetBlendEquationRgb() | |||
| BlendEquation render_context::blend_equation_rgb() | |||
| { | |||
| return m_renderer->GetBlendEquationRgb(); | |||
| } | |||
| BlendEquation RenderContext::GetBlendEquationAlpha() | |||
| BlendEquation render_context::blend_equation_alpha() | |||
| { | |||
| return m_renderer->GetBlendEquationAlpha(); | |||
| } | |||
| void RenderContext::SetBlendFunc(BlendFunc src, BlendFunc dst) | |||
| void render_context::blend_func(BlendFunc src, BlendFunc dst) | |||
| { | |||
| if (!m_data->m_blend_src.is_dirty()) | |||
| m_data->m_blend_src.set(m_renderer->GetBlendFuncSrc()); | |||
| @@ -199,17 +199,17 @@ void RenderContext::SetBlendFunc(BlendFunc src, BlendFunc dst) | |||
| m_renderer->SetBlendFunc(src, dst); | |||
| } | |||
| BlendFunc RenderContext::GetBlendFuncSrc() | |||
| BlendFunc render_context::blend_func_src() | |||
| { | |||
| return m_renderer->GetBlendFuncSrc(); | |||
| } | |||
| BlendFunc RenderContext::GetBlendFuncDst() | |||
| BlendFunc render_context::blend_func_dst() | |||
| { | |||
| return m_renderer->GetBlendFuncDst(); | |||
| } | |||
| void RenderContext::SetDepthFunc(DepthFunc func) | |||
| void render_context::depth_func(DepthFunc func) | |||
| { | |||
| if (!m_data->m_depth_func.is_dirty()) | |||
| m_data->m_depth_func.set(m_renderer->GetDepthFunc()); | |||
| @@ -217,12 +217,12 @@ void RenderContext::SetDepthFunc(DepthFunc func) | |||
| m_renderer->SetDepthFunc(func); | |||
| } | |||
| DepthFunc RenderContext::GetDepthFunc() | |||
| DepthFunc render_context::depth_func() | |||
| { | |||
| return m_renderer->GetDepthFunc(); | |||
| } | |||
| void RenderContext::SetDepthMask(DepthMask mask) | |||
| void render_context::depth_mask(DepthMask mask) | |||
| { | |||
| if (!m_data->m_depth_mask.is_dirty()) | |||
| m_data->m_depth_mask.set(m_renderer->GetDepthMask()); | |||
| @@ -230,12 +230,12 @@ void RenderContext::SetDepthMask(DepthMask mask) | |||
| m_renderer->SetDepthMask(mask); | |||
| } | |||
| DepthMask RenderContext::GetDepthMask() | |||
| DepthMask render_context::depth_mask() | |||
| { | |||
| return m_renderer->GetDepthMask(); | |||
| } | |||
| void RenderContext::SetCullMode(CullMode mode) | |||
| void render_context::cull_mode(CullMode mode) | |||
| { | |||
| if (!m_data->m_cull_mode.is_dirty()) | |||
| m_data->m_cull_mode.set(m_renderer->GetCullMode()); | |||
| @@ -243,12 +243,12 @@ void RenderContext::SetCullMode(CullMode mode) | |||
| m_renderer->SetCullMode(mode); | |||
| } | |||
| CullMode RenderContext::GetCullMode() | |||
| CullMode render_context::cull_mode() | |||
| { | |||
| return m_renderer->GetCullMode(); | |||
| } | |||
| void RenderContext::SetPolygonMode(PolygonMode mode) | |||
| void render_context::polygon_mode(PolygonMode mode) | |||
| { | |||
| if (!m_data->m_polygon_mode.is_dirty()) | |||
| m_data->m_polygon_mode.set(m_renderer->GetPolygonMode()); | |||
| @@ -256,12 +256,12 @@ void RenderContext::SetPolygonMode(PolygonMode mode) | |||
| m_renderer->SetPolygonMode(mode); | |||
| } | |||
| PolygonMode RenderContext::GetPolygonMode() | |||
| PolygonMode render_context::polygon_mode() | |||
| { | |||
| return m_renderer->GetPolygonMode(); | |||
| } | |||
| void RenderContext::SetScissorMode(ScissorMode mode) | |||
| void render_context::scissor_mode(ScissorMode mode) | |||
| { | |||
| if (!m_data->m_scissor_mode.is_dirty()) | |||
| m_data->m_scissor_mode.set(m_renderer->GetScissorMode()); | |||
| @@ -269,7 +269,7 @@ void RenderContext::SetScissorMode(ScissorMode mode) | |||
| m_renderer->SetScissorMode(mode); | |||
| } | |||
| void RenderContext::SetScissorRect(vec4 rect) | |||
| void render_context::scissor_rect(vec4 rect) | |||
| { | |||
| if (!m_data->m_scissor_rect.is_dirty()) | |||
| m_data->m_scissor_rect.set(m_renderer->GetScissorRect()); | |||
| @@ -277,12 +277,12 @@ void RenderContext::SetScissorRect(vec4 rect) | |||
| m_renderer->SetScissorRect(rect); | |||
| } | |||
| ScissorMode RenderContext::GetScissorMode() | |||
| ScissorMode render_context::scissor_mode() | |||
| { | |||
| return m_renderer->GetScissorMode(); | |||
| } | |||
| vec4 RenderContext::GetScissorRect() | |||
| vec4 render_context::scissor_rect() | |||
| { | |||
| return m_renderer->GetScissorRect(); | |||
| } | |||
| @@ -26,40 +26,40 @@ namespace lol | |||
| class RenderContextData; | |||
| class RenderContext | |||
| class render_context | |||
| { | |||
| public: | |||
| RenderContext(std::shared_ptr<Renderer> renderer); | |||
| ~RenderContext(); | |||
| render_context(std::shared_ptr<Renderer> renderer); | |||
| ~render_context(); | |||
| void SetViewport(ibox2 viewport); | |||
| void SetClearColor(vec4 color); | |||
| void SetClearDepth(float depth); | |||
| void SetAlphaFunc(AlphaFunc func, float alpha); | |||
| void SetBlendEquation(BlendEquation rgb, BlendEquation alpha); | |||
| void SetBlendFunc(BlendFunc src, BlendFunc dst); | |||
| void SetDepthFunc(DepthFunc func); | |||
| void SetDepthMask(DepthMask mask); | |||
| void SetCullMode(CullMode mode); | |||
| void SetPolygonMode(PolygonMode mode); | |||
| void SetScissorMode(ScissorMode mode); | |||
| void SetScissorRect(vec4 rect); | |||
| void viewport(ibox2 viewport); | |||
| void clear_color(vec4 color); | |||
| void clear_depth(float depth); | |||
| void alpha_func(AlphaFunc func, float alpha); | |||
| void blend_equation(BlendEquation rgb, BlendEquation alpha); | |||
| void blend_func(BlendFunc src, BlendFunc dst); | |||
| void depth_func(DepthFunc func); | |||
| void depth_mask(DepthMask mask); | |||
| void cull_mode(CullMode mode); | |||
| void polygon_mode(PolygonMode mode); | |||
| void scissor_mode(ScissorMode mode); | |||
| void scissor_rect(vec4 rect); | |||
| ibox2 GetViewport(); | |||
| vec4 GetClearColor(); | |||
| float GetClearDepth(); | |||
| AlphaFunc GetAlphaFunc(); | |||
| float GetAlphaValue(); | |||
| BlendEquation GetBlendEquationRgb(); | |||
| BlendEquation GetBlendEquationAlpha(); | |||
| BlendFunc GetBlendFuncSrc(); | |||
| BlendFunc GetBlendFuncDst(); | |||
| DepthFunc GetDepthFunc(); | |||
| DepthMask GetDepthMask(); | |||
| CullMode GetCullMode(); | |||
| PolygonMode GetPolygonMode(); | |||
| ScissorMode GetScissorMode(); | |||
| vec4 GetScissorRect(); | |||
| ibox2 viewport(); | |||
| vec4 clear_color(); | |||
| float clear_depth(); | |||
| AlphaFunc alpha_func(); | |||
| float alpha_value(); | |||
| BlendEquation blend_equation_rgb(); | |||
| BlendEquation blend_equation_alpha(); | |||
| BlendFunc blend_func_src(); | |||
| BlendFunc blend_func_dst(); | |||
| DepthFunc depth_func(); | |||
| DepthMask depth_mask(); | |||
| CullMode cull_mode(); | |||
| PolygonMode polygon_mode(); | |||
| ScissorMode scissor_mode(); | |||
| vec4 scissor_rect(); | |||
| private: | |||
| std::shared_ptr<Renderer> m_renderer; | |||
| @@ -361,10 +361,10 @@ void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) | |||
| if (!m_shader) | |||
| return; | |||
| RenderContext rc(Scene::GetScene(0).get_renderer()); | |||
| rc.SetCullMode(CullMode::Disabled); | |||
| rc.SetDepthFunc(DepthFunc::Disabled); | |||
| rc.SetScissorMode(ScissorMode::Enabled); | |||
| render_context rc(Scene::GetScene(0).get_renderer()); | |||
| rc.cull_mode(CullMode::Disabled); | |||
| rc.depth_func(DepthFunc::Disabled); | |||
| rc.scissor_mode(ScissorMode::Enabled); | |||
| m_shader->Bind(); | |||
| @@ -407,7 +407,7 @@ void LolImGui::RenderDrawListsMethod(ImDrawData* draw_data) | |||
| m_shader->SetUniform(m_texture, texture->GetTextureUniform(), 0); | |||
| } | |||
| rc.SetScissorRect(command.ClipRect); | |||
| rc.scissor_rect(command.ClipRect); | |||
| #ifdef SHOW_IMGUI_DEBUG | |||
| //----------------------------------------------------------------- | |||
| @@ -143,7 +143,7 @@ private: | |||
| SceneDisplay* m_display = nullptr; | |||
| /** Render buffers: where to render to. */ | |||
| Framebuffer *m_renderbuffer[4]; | |||
| std::shared_ptr<Framebuffer> m_renderbuffer[4]; | |||
| struct postprocess | |||
| { | |||
| @@ -210,10 +210,8 @@ Scene::Scene(ivec2 size) | |||
| data(std::make_unique<SceneData>()), | |||
| m_renderer(std::make_shared<Renderer>(size)) | |||
| { | |||
| data->m_renderbuffer[0] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[1] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[2] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[3] = new Framebuffer(m_size); | |||
| for (int i = 0; i < 4; ++i) | |||
| data->m_renderbuffer[i] = std::make_shared<Framebuffer>(m_size); | |||
| data->m_pp.m_shader[0] = Shader::Create(LOLFX_RESOURCE_NAME(gpu_blit)); | |||
| data->m_pp.m_shader[1] = Shader::Create(LOLFX_RESOURCE_NAME(gpu_postprocess)); | |||
| data->m_pp.m_coord[0] = data->m_pp.m_shader[0]->GetAttribLocation(VertexUsage::Position, 0); | |||
| @@ -579,14 +577,8 @@ void Scene::pre_render(float) | |||
| if (m_size != m_wanted_size) | |||
| { | |||
| m_size = m_wanted_size; | |||
| delete data->m_renderbuffer[0]; | |||
| delete data->m_renderbuffer[1]; | |||
| delete data->m_renderbuffer[2]; | |||
| delete data->m_renderbuffer[3]; | |||
| data->m_renderbuffer[0] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[1] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[2] = new Framebuffer(m_size); | |||
| data->m_renderbuffer[3] = new Framebuffer(m_size); | |||
| for (int i = 0; i < 4; ++i) | |||
| data->m_renderbuffer[i] = std::make_shared<Framebuffer>(m_size); | |||
| mat4 proj = mat4::ortho(0.f, (float)m_size.x, 0.f, (float)m_size.y, -1000.f, 1000.f); | |||
| data->m_default_cam->SetProjection(proj); | |||
| @@ -599,11 +591,11 @@ void Scene::pre_render(float) | |||
| } | |||
| { | |||
| RenderContext rc(m_renderer); | |||
| render_context rc(m_renderer); | |||
| if (do_pp) | |||
| { | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| } | |||
| m_renderer->Clear(ClearMask::Color | ClearMask::Depth); | |||
| @@ -633,9 +625,9 @@ void Scene::post_render(float) | |||
| data->m_renderbuffer[3]->Bind(); | |||
| RenderContext rc(m_renderer); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(m_renderer); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| m_renderer->Clear(ClearMask::Color | ClearMask::Depth); | |||
| /* Execute post process */ | |||
| @@ -657,9 +649,9 @@ void Scene::post_render(float) | |||
| data->m_pp.m_shader[0]->Bind(); | |||
| RenderContext rc(m_renderer); | |||
| rc.SetClearColor(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.SetClearDepth(1.f); | |||
| render_context rc(m_renderer); | |||
| rc.clear_color(vec4(0.f, 0.f, 0.f, 1.f)); | |||
| rc.clear_depth(1.f); | |||
| m_renderer->Clear(ClearMask::Color | ClearMask::Depth); | |||
| /* Blit final image to screen */ | |||
| @@ -687,9 +679,9 @@ void Scene::render_primitives() | |||
| ASSERT(!!data, "Trying to access a non-ready scene"); | |||
| /* FIXME: Temp fix for mesh having no render context*/ | |||
| RenderContext rc(m_renderer); | |||
| rc.SetCullMode(CullMode::Clockwise); | |||
| rc.SetDepthFunc(DepthFunc::LessOrEqual); | |||
| render_context rc(m_renderer); | |||
| rc.cull_mode(CullMode::Clockwise); | |||
| rc.depth_func(DepthFunc::LessOrEqual); | |||
| /* new scenegraph */ | |||
| for (uintptr_t key : keys(data->m_prim_renderers)) | |||
| @@ -708,7 +700,7 @@ void Scene::render_tiles() // XXX: rename to Blit() | |||
| { | |||
| ASSERT(!!data, "Trying to access a non-ready scene"); | |||
| RenderContext rc(m_renderer); | |||
| render_context rc(m_renderer); | |||
| /* Early test if nothing needs to be rendered */ | |||
| if (!data->m_tile_api.m_tiles.count() && !data->m_tile_api.m_palettes.count()) | |||
| @@ -716,12 +708,12 @@ void Scene::render_tiles() // XXX: rename to Blit() | |||
| /* FIXME: we disable culling for now because we don’t have a reliable | |||
| * way to know which side is facing the camera. */ | |||
| rc.SetCullMode(CullMode::Disabled); | |||
| rc.cull_mode(CullMode::Disabled); | |||
| rc.SetDepthFunc(DepthFunc::LessOrEqual); | |||
| rc.SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha); | |||
| rc.SetBlendEquation(BlendEquation::Add, BlendEquation::Max); | |||
| rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f); | |||
| rc.depth_func(DepthFunc::LessOrEqual); | |||
| rc.blend_func(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha); | |||
| rc.blend_equation(BlendEquation::Add, BlendEquation::Max); | |||
| rc.alpha_func(AlphaFunc::GreaterOrEqual, 0.01f); | |||
| #if (defined LOL_USE_GLEW || defined HAVE_GL_2X) && !defined HAVE_GLES_2X | |||
| glEnable(GL_TEXTURE_2D); | |||
| @@ -832,15 +824,15 @@ void Scene::render_lines(float seconds) | |||
| { | |||
| ASSERT(!!data, "Trying to access a non-ready scene"); | |||
| RenderContext rc(m_renderer); | |||
| render_context rc(m_renderer); | |||
| if (!data->m_line_api.m_lines.count()) | |||
| return; | |||
| rc.SetDepthFunc(DepthFunc::LessOrEqual); | |||
| rc.SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha); | |||
| rc.SetBlendEquation(BlendEquation::Add, BlendEquation::Max); | |||
| rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f); | |||
| rc.depth_func(DepthFunc::LessOrEqual); | |||
| rc.blend_func(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha); | |||
| rc.blend_equation(BlendEquation::Add, BlendEquation::Max); | |||
| rc.alpha_func(AlphaFunc::GreaterOrEqual, 0.01f); | |||
| int linecount = (int)data->m_line_api.m_lines.count(); | |||