浏览代码

gpu: avoid unnecessary OpenGL context changes.

undefined
Sam Hocevar 12 年前
父节点
当前提交
ccc9369660
共有 1 个文件被更改,包括 8 次插入3 次删除
  1. +8
    -3
      src/scene.cpp

+ 8
- 3
src/scene.cpp 查看文件

@@ -190,13 +190,14 @@ Array<Light *> const &Scene::GetLights() const
void Scene::Render() // XXX: rename to Blit()
{
RenderContext rc;
rc.SetDepthFunc(DepthFunc::LessOrEqual);
rc.SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha);
rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f);

/* Early test if nothing needs to be rendered */
if (data->m_tiles.Count())
{
rc.SetDepthFunc(DepthFunc::LessOrEqual);
rc.SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha);
rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f);

PushCamera(data->m_default_cam);

#if defined USE_D3D9 || defined _XBOX
@@ -295,6 +296,10 @@ void Scene::Render() // XXX: rename to Blit()

if (data->m_lines.Count())
{
rc.SetDepthFunc(DepthFunc::LessOrEqual);
rc.SetBlendFunc(BlendFunc::SrcAlpha, BlendFunc::OneMinusSrcAlpha);
rc.SetAlphaFunc(AlphaFunc::GreaterOrEqual, 0.01f);

int linecount = data->m_lines.Count();

if (!data->m_line_shader)


正在加载...
取消
保存