void ShaderRenderer::init() { debug("Initializing OpenGL Renderer with shaders"); computeScreenViewport(); glEnable(GL_DEPTH_TEST); static const char* attributes[] = { "position", "texcoord", NULL }; _boxShader = OpenGL::Shader::fromFiles("myst3_box", attributes); _boxVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, sizeof(boxVertices), boxVertices); _boxShader->enableVertexAttribute("position", _boxVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); _boxShader->enableVertexAttribute("texcoord", _boxVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); _cubeShader = OpenGL::Shader::fromFiles("myst3_cube", attributes); _cubeVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, sizeof(cubeVertices), cubeVertices); _cubeShader->enableVertexAttribute("texcoord", _cubeVBO, 2, GL_FLOAT, GL_TRUE, 5 * sizeof(float), 0); _cubeShader->enableVertexAttribute("position", _cubeVBO, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), 2 * sizeof(float)); _rect3dShader = OpenGL::Shader::fromFiles("myst3_cube", attributes); _rect3dVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, 20 * sizeof(float), NULL); _rect3dShader->enableVertexAttribute("texcoord", _rect3dVBO, 2, GL_FLOAT, GL_TRUE, 5 * sizeof(float), 0); _rect3dShader->enableVertexAttribute("position", _rect3dVBO, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), 2 * sizeof(float)); _textShader = OpenGL::Shader::fromFiles("myst3_text", attributes); _textVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, 100 * 16 * sizeof(float), NULL, GL_DYNAMIC_DRAW); _textShader->enableVertexAttribute("texcoord", _textVBO, 2, GL_FLOAT, GL_TRUE, 4 * sizeof(float), 0); _textShader->enableVertexAttribute("position", _textVBO, 2, GL_FLOAT, GL_TRUE, 4 * sizeof(float), 2 * sizeof(float)); setupQuadEBO(); }
void OpenGLSDriver::init() { bool fullscreen = ConfMan.getBool("fullscreen"); g_system->setupScreen(kOriginalWidth, kOriginalHeight, fullscreen, true); computeScreenViewport(); static const char* attributes[] = { "position", "texcoord", nullptr }; _surfaceShader = Graphics::Shader::fromFiles("stark_surface", attributes); _surfaceVBO = Graphics::Shader::createBuffer(GL_ARRAY_BUFFER, sizeof(surfaceVertices), surfaceVertices); _surfaceShader->enableVertexAttribute("position", _surfaceVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); _surfaceShader->enableVertexAttribute("texcoord", _surfaceVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); static const char* actorAttributes[] = { "position1", "position2", "bone1", "bone2", "boneWeight", "normal", "texcoord", nullptr }; _actorShader = Graphics::Shader::fromFiles("stark_actor", actorAttributes); }
void OpenGLSDriver::init() { computeScreenViewport(); static const char* attributes[] = { "position", "texcoord", nullptr }; _surfaceShader = OpenGL::Shader::fromFiles("stark_surface", attributes); _surfaceVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, sizeof(surfaceVertices), surfaceVertices); _surfaceShader->enableVertexAttribute("position", _surfaceVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); _surfaceShader->enableVertexAttribute("texcoord", _surfaceVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); static const char* actorAttributes[] = { "position1", "position2", "bone1", "bone2", "boneWeight", "normal", "texcoord", nullptr }; _actorShader = OpenGL::Shader::fromFiles("stark_actor", actorAttributes); static const char* fadeAttributes[] = { "position", nullptr }; _fadeShader = OpenGL::Shader::fromFiles("stark_fade", fadeAttributes); _fadeVBO = OpenGL::Shader::createBuffer(GL_ARRAY_BUFFER, sizeof(fadeVertices), fadeVertices); _fadeShader->enableVertexAttribute("position", _fadeVBO, 2, GL_FLOAT, GL_TRUE, 2 * sizeof(float), 0); }
void TinyGLRenderer::init() { debug("Initializing Software 3D Renderer"); computeScreenViewport(); Graphics::PixelBuffer screenBuffer = _system->getScreenPixelBuffer(); _fb = new TinyGL::FrameBuffer(kOriginalWidth, kOriginalHeight, screenBuffer); TinyGL::glInit(_fb, 512); tglMatrixMode(TGL_PROJECTION); tglLoadIdentity(); tglMatrixMode(TGL_MODELVIEW); tglLoadIdentity(); tglDisable(TGL_LIGHTING); tglEnable(TGL_TEXTURE_2D); tglEnable(TGL_DEPTH_TEST); }
void OpenGLRenderer::init() { debug("Initializing OpenGL Renderer"); computeScreenViewport(); // Check the available OpenGL extensions if (!OpenGLContext.NPOTSupported) { warning("GL_ARB_texture_non_power_of_two is not available."); } glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); glEnable(GL_DEPTH_TEST); }
void OpenGLRenderer::init() { debug("Initializing OpenGL Renderer"); bool fullscreen = ConfMan.getBool("fullscreen"); _system->setupScreen(kOriginalWidth, kOriginalHeight, fullscreen, true); computeScreenViewport(); // Check the available OpenGL extensions const char* extensions = (const char*)glGetString(GL_EXTENSIONS); if (strstr(extensions, "GL_ARB_texture_non_power_of_two")) _nonPowerOfTwoTexSupport = true; else warning("GL_ARB_texture_non_power_of_two is not available."); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_LIGHTING); glEnable(GL_TEXTURE_2D); glEnable(GL_DEPTH_TEST); }