Guest User

Untitled

a guest
Jun 18th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. Environment () : graphics::Drawable(),
  2.     mPixelShader(nullptr), mVertexShader(nullptr), mProgram(nullptr), mArray(nullptr), mBatchObject(nullptr), mVState(nullptr), mSState(nullptr)
  3. {
  4.     sys::File _ps("data/shaders/starscape.ps", "r");
  5.     if (!_ps)
  6.         throw "Could not open environment pixel shader";
  7.     sys::File _vs("data/shaders/starscape.vs", "r");
  8.     if (!_vs)
  9.         throw "Could not open environment vertex shader";
  10.  
  11.     string s_ps;
  12.     _ps.getFile(s_ps);
  13.     string s_vs;
  14.     _vs.getFile(s_vs);
  15.  
  16.     mPixelShader = new fgl::PixelShader(s_ps.c_str());
  17.     mVertexShader = new fgl::VertexShader(s_vs.c_str());
  18.     mProgram = new fgl::Program(mPixelShader, mVertexShader);
  19.  
  20.     vector<fgl::vec2> verts(4);
  21.     verts[0] = fgl::vec2(-0.5, -0.5);
  22.     verts[1] = fgl::vec2( 0.5, -0.5);
  23.     verts[2] = fgl::vec2( 0.5,  0.5);
  24.     verts[3] = fgl::vec2(-0.5,  0.5);
  25.  
  26.     vector<u8> indices(6);
  27.     indices[0] = 0;
  28.     indices[1] = 1;
  29.     indices[2] = 2;
  30.     indices[3] = 2;
  31.     indices[4] = 3;
  32.     indices[5] = 0;
  33.  
  34.     mArray = new fgl::VertexArray(verts.data(), 4, indices.data(), 6, sizeof(fgl::vec2), fgl::VertexArray::STATIC_WRITE);
  35.  
  36.     mVState = new fgl::VertexState(mArray);
  37.     mVState->setProgram(mProgram);
  38.     mVState->setProperty("position", 0, 2, fgl::F32);
  39.  
  40.     mSState = new fgl::ShaderState(mProgram);
  41.    
  42.     mBatchObject = new fgl::BatchObject;
  43.     mBatchObject->attach(mVState);
  44.     mBatchObject->attach(mSState);
  45. }
Add Comment
Please, Sign In to add comment