Changeset View
Changeset View
Standalone View
Standalone View
source/graphics/LOSTexture.cpp
Show First 20 Lines • Show All 84 Lines • ▼ Show 20 Lines | bool CLOSTexture::CreateShader() | ||||
if (!m_ShaderInitialized) | if (!m_ShaderInitialized) | ||||
{ | { | ||||
LOGERROR("Failed to load SmoothLOS shader, disabling."); | LOGERROR("Failed to load SmoothLOS shader, disabling."); | ||||
g_RenderingOptions.SetSmoothLOS(false); | g_RenderingOptions.SetSmoothLOS(false); | ||||
return false; | return false; | ||||
} | } | ||||
pglGenFramebuffersEXT(1, &m_smoothFbo); | glGenFramebuffersEXT(1, &m_smoothFbo); | ||||
return true; | return true; | ||||
} | } | ||||
void CLOSTexture::DeleteTexture() | void CLOSTexture::DeleteTexture() | ||||
{ | { | ||||
glDeleteTextures(1, &m_Texture); | glDeleteTextures(1, &m_Texture); | ||||
if (m_TextureSmooth1) | if (m_TextureSmooth1) | ||||
▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | void CLOSTexture::InterpolateLOS() | ||||
} | } | ||||
if (m_Dirty) | if (m_Dirty) | ||||
{ | { | ||||
RecomputeTexture(0); | RecomputeTexture(0); | ||||
m_Dirty = false; | m_Dirty = false; | ||||
} | } | ||||
pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_smoothFbo); | glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_smoothFbo); | ||||
pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, | glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, | ||||
whichTex ? m_TextureSmooth2 : m_TextureSmooth1, 0); | whichTex ? m_TextureSmooth2 : m_TextureSmooth1, 0); | ||||
GLenum status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); | GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); | ||||
if (status != GL_FRAMEBUFFER_COMPLETE_EXT) | if (status != GL_FRAMEBUFFER_COMPLETE_EXT) | ||||
{ | { | ||||
LOGWARNING("LOS framebuffer object incomplete: 0x%04X", status); | LOGWARNING("LOS framebuffer object incomplete: 0x%04X", status); | ||||
} | } | ||||
m_smoothShader->BeginPass(); | m_smoothShader->BeginPass(); | ||||
CShaderProgramPtr shader = m_smoothShader->GetShader(); | CShaderProgramPtr shader = m_smoothShader->GetShader(); | ||||
Show All 33 Lines | void CLOSTexture::InterpolateLOS() | ||||
shader->AssertPointersBound(); | shader->AssertPointersBound(); | ||||
glDrawArrays(GL_TRIANGLES, 0, 6); | glDrawArrays(GL_TRIANGLES, 0, 6); | ||||
g_Renderer.SetViewport(oldVp); | g_Renderer.SetViewport(oldVp); | ||||
shader->Unbind(); | shader->Unbind(); | ||||
m_smoothShader->EndPass(); | m_smoothShader->EndPass(); | ||||
pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, 0, 0); | glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, 0, 0); | ||||
pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); | glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); | ||||
whichTex = !whichTex; | whichTex = !whichTex; | ||||
} | } | ||||
GLuint CLOSTexture::GetTexture() | GLuint CLOSTexture::GetTexture() | ||||
{ | { | ||||
if (m_Dirty) | if (m_Dirty) | ||||
▲ Show 20 Lines • Show All 217 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator