Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "scene2d.h"
- #include "iecrenderer.h"
- #include "common.h"
- ITexture* g_texture;
- IShaderProgram* g_shader;
- Scene2D::Scene2D(IECRenderer* parentRenderer) : ISceneManager(parentRenderer)
- {
- }
- void Scene2D::fillIndexBuffer(CJB_USHORT numQuads)
- {
- }
- void Scene2D::init()
- {
- m_parentRenderer->setClearColor(0.4f, 0.6f, 0.9f, 0.0f);
- g_texture = m_parentRenderer->createTextureWithImage("textures/twitter-bird.png");
- m_pVAO = m_parentRenderer->generateVAO();
- m_parentRenderer->bindVAO(m_pVAO);
- m_verticiesVBO = m_parentRenderer->generateVBO();
- m_indicesVBO = m_parentRenderer->generateVBO();
- m_numQuads = 0;
- m_indices = NULL;
- m_verticies = NULL;
- AddTexturedScreenQuad(0.0f,0.0f,1.0f,1.0f,g_texture);
- }
- void Scene2D::preRender(CJB_UINT64 dt)
- {
- }
- void Scene2D::render(CJB_UINT64 dt)
- {
- m_parentRenderer->clearBuffers(CJB_COLOR_BUFFER|CJB_DEPTH_BUFFER|CJB_STENCIL_BUFFER);
- m_parentRenderer->bindTexture(g_texture);
- m_parentRenderer->bindVAO(m_pVAO);
- m_parentRenderer->bindVBO(VBO_INDICES,m_indicesVBO);
- m_parentRenderer->drawElements(DRAW_MODE_TRIANGLES,m_numQuads*2,ET_USHORT,(void*)0);
- m_parentRenderer->unbindVAO();
- }
- void Scene2D::postRender(CJB_UINT64 dt)
- {
- }
- void Scene2D::AddTexturedScreenQuad(float x, float y, float w, float h, ITexture* texture)
- {
- ++m_numQuads;
- m_indices = new CJB_USHORT[6];
- m_verticies = new s_texturedScreenQuadVertex[4];
- //Test values
- m_indices[0] = 0;
- m_indices[1] = 1;
- m_indices[2] = 2;
- m_indices[3] = 3;
- m_indices[4] = 2;
- m_indices[5] = 1;
- m_verticies[0].x = -1.0f; m_verticies[1].y = 1.0f; m_verticies[1].z = 0.0f;
- m_verticies[0].u = 0.0f; m_verticies[1].v = 0.0f;
- m_verticies[1].x = -1.0f; m_verticies[0].y = -1.0f; m_verticies[0].z = 0.0f;
- m_verticies[1].u = 0.0f; m_verticies[0].v = 1.0f;
- m_verticies[2].x = 1.0f; m_verticies[3].y = -1.0f; m_verticies[3].z = 0.0f;
- m_verticies[2].u = 1.0f; m_verticies[3].v = 1.0f;
- m_verticies[3].x = 1.0f; m_verticies[2].y = 1.0f; m_verticies[2].z = 0.0f;
- m_verticies[3].u = 1.0f; m_verticies[2].v = 0.0f;
- //<END>Test values
- m_parentRenderer->bindVAO(m_pVAO);
- m_parentRenderer->bindVBO(VBO_ARRAY,m_verticiesVBO);
- m_parentRenderer->setBufferData(VBO_ARRAY,sizeof(m_verticies[0])*4,m_verticies,VBO_DYNAMIC_DRAW);
- m_parentRenderer->enableVertexAttributeArray(0);
- m_parentRenderer->setVertexAttributePointer(0,3,ET_FLOAT,true,sizeof(m_verticies[0]),(void*)offsetof(s_texturedScreenQuadVertex,x));
- m_parentRenderer->enableVertexAttributeArray(1);
- m_parentRenderer->setVertexAttributePointer(1,2,ET_FLOAT,true,sizeof(m_verticies[0]),(void*)offsetof(s_texturedScreenQuadVertex,u));
- m_parentRenderer->bindVBO(VBO_INDICES,m_indicesVBO);
- m_parentRenderer->setBufferData(VBO_INDICES,sizeof(m_indices[0])*6,m_indices,VBO_STATIC_DRAW);
- m_parentRenderer->unbindVAO();
- m_parentRenderer->unbindVBO(VBO_ARRAY);
- m_parentRenderer->unbindVBO(VBO_INDICES);
- }
- void Scene2D::shutdown()
- {
- if (m_indices != NULL)
- {
- delete m_indices;
- m_indices = NULL;
- }
- if (m_verticies != NULL)
- {
- delete m_verticies;
- m_verticies = NULL;
- }
- ISceneManager::shutdown();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement