Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Environment () : graphics::Drawable(),
- mPixelShader(nullptr), mVertexShader(nullptr), mProgram(nullptr), mArray(nullptr), mBatchObject(nullptr), mVState(nullptr), mSState(nullptr)
- {
- sys::File _ps("data/shaders/starscape.ps", "r");
- if (!_ps)
- throw "Could not open environment pixel shader";
- sys::File _vs("data/shaders/starscape.vs", "r");
- if (!_vs)
- throw "Could not open environment vertex shader";
- string s_ps;
- _ps.getFile(s_ps);
- string s_vs;
- _vs.getFile(s_vs);
- mPixelShader = new fgl::PixelShader(s_ps.c_str());
- mVertexShader = new fgl::VertexShader(s_vs.c_str());
- mProgram = new fgl::Program(mPixelShader, mVertexShader);
- vector<fgl::vec2> verts(4);
- verts[0] = fgl::vec2(-0.5, -0.5);
- verts[1] = fgl::vec2( 0.5, -0.5);
- verts[2] = fgl::vec2( 0.5, 0.5);
- verts[3] = fgl::vec2(-0.5, 0.5);
- vector<u8> indices(6);
- indices[0] = 0;
- indices[1] = 1;
- indices[2] = 2;
- indices[3] = 2;
- indices[4] = 3;
- indices[5] = 0;
- mArray = new fgl::VertexArray(verts.data(), 4, indices.data(), 6, sizeof(fgl::vec2), fgl::VertexArray::STATIC_WRITE);
- mVState = new fgl::VertexState(mArray);
- mVState->setProgram(mProgram);
- mVState->setProperty("position", 0, 2, fgl::F32);
- mSState = new fgl::ShaderState(mProgram);
- mBatchObject = new fgl::BatchObject;
- mBatchObject->attach(mVState);
- mBatchObject->attach(mSState);
- }
Add Comment
Please, Sign In to add comment