bool SetResolution( DLong nx, DLong ny) { DLong& actX = (*static_cast<DLongGDL*>( dStruct->GetTag( xSTag, 0)))[0]; DLong& actY = (*static_cast<DLongGDL*>( dStruct->GetTag( ySTag, 0)))[0]; if( nx == actX && ny == actY) return true; DeleteStream(); if( zBuffer != NULL) { SetZBuffer( nx, ny); } actX = nx; actY = ny; DLong& actXV = (*static_cast<DLongGDL*>( dStruct->GetTag( xVSTag, 0)))[0]; DLong& actYV = (*static_cast<DLongGDL*>( dStruct->GetTag( yVSTag, 0)))[0]; actXV = nx; actYV = ny; return true; }
bool ZBuffering( bool yes) { if( !yes) { delete[] zBuffer; zBuffer = NULL; } else if( zBuffer == NULL) { DLong& actX = (*static_cast<DLongGDL*>( dStruct->GetTag( xSTag, 0)))[0]; DLong& actY = (*static_cast<DLongGDL*>( dStruct->GetTag( ySTag, 0)))[0]; SetZBuffer( actX, actY); } return true; }
bool GLVideo::StartApplication( const unsigned int width, const unsigned int height, const str_type::string& winTitle, const bool windowed, const bool sync, const Texture::PIXEL_FORMAT pfBB, const bool maximizable) { SetFilterMode(Video::TM_ALWAYS); SetAlphaMode(Video::AM_PIXEL); SetZBuffer(false); SetZWrite(false); SetClamp(true); SetBlendMode(1, Video::BM_MODULATE); Enable2DStates(); // don't reset cg context if it is an opengl context reset if (!m_shaderContext) m_shaderContext = GLCgShaderContextPtr(new GLCgShaderContext); if (!m_defaultVS) m_defaultVS = LoadShaderFromString("defaultShader", gs2dglobal::defaultVSCode, Shader::SF_VERTEX, Shader::SP_MODEL_2, "sprite"); if (!m_rectVS) m_rectVS = LoadShaderFromString("rectShader", gs2dglobal::defaultVSCode, Shader::SF_VERTEX, Shader::SP_MODEL_2, "rectangle"); if (!m_fastVS) m_fastVS = LoadShaderFromString("fastShader", gs2dglobal::fastSimpleVSCode, Shader::SF_VERTEX, Shader::SP_MODEL_2, "fast"); m_currentVS = m_defaultVS; UpdateInternalShadersViewData(GetScreenSizeF(), false); return true; }