Advertisement
Caiwan

test.cpp

Oct 12th, 2012
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.83 KB | None | 0 0
  1. #include "test.h"
  2. #include "../../engine/source/CSNCapi.hpp"
  3. #include <cmath>
  4.  
  5. #include <gl/GL.h>
  6.  
  7. namespace {
  8. #include "cube.h"
  9. #include "shader.h"
  10.  
  11.     FWrender::camera *camera;
  12.     FWrender::vertex_array *cube;
  13.     FWrender::light *light0;
  14.     FWrender::texture *tex0;
  15.  
  16.     FWrender::shader *shader;
  17.  
  18.     static float t,u;
  19. }
  20.  
  21. void debugcube();
  22.  
  23. extern void init(){
  24.     camera = new FWrender::camera();
  25.     camera->setUp(0,1,0);
  26.     camera->setCenter(0,0,0);
  27.  
  28.     cube = new FWrender::vertex_array();
  29.  
  30.     cube->setVertexPointer((void*)cube_vertices,     3, cube_vertex_length, false);
  31.     cube->setNormalPointer((void*)cube_normals,      3, cube_vertex_length, false);
  32.     cube->setTexturePointer((void*)cube_texture_uvs, 2, cube_vertex_length, false);
  33.  
  34.     light0 = new FWrender::light();
  35.     light0->setPosition(5,5,5);
  36.  
  37.     unsigned char *bmp = new unsigned char[256*256*3];
  38.     for (int x = 0; x<256; x++)
  39.         for (int y = 0; y<256; y++)
  40.             bmp[3*(256*x+y)] = bmp[3*(256*x+y)+1] = bmp[3*(256*x+y)+2] = x^y;
  41.    
  42.     tex0 = new FWrender::texture();
  43.     tex0->setSize(256,256,3);
  44.     tex0->build(bmp);
  45.  
  46.     delete bmp;
  47.  
  48.     shader = new FWrender::shader();
  49.     shader ->createFromMemory(vertexShader_source, fragmentShader_source);
  50. }
  51.  
  52. extern void mainloop(){
  53.     camera->setEye(5*sin(t), 4, 5*cos(t));
  54.  
  55.     camera->projectScene();
  56.     camera->lookAtScene();
  57.  
  58.     light0->bind();
  59.  
  60.     //FWrender::switchTextue2D(true);
  61.  
  62.     tex0->bind();
  63.  
  64.     shader->bind();
  65.     shader->set("tex0", (int)0);
  66.  
  67.     cube->bindAll();
  68.     cube->setDrawType(FWrender::VBO_DRAW::VD_QUADS);
  69.     cube->drawByIndex((void*)0, cube_indices_length, FWrender::DT_UNSIGNED_SHORT);
  70.     cube->unbindAll();
  71.  
  72.     shader->unbind();
  73.  
  74.     tex0->unbind();
  75.  
  76.     light0->unbind();
  77.  
  78.     t += 0.005; u += 0.0006; // khurwa
  79. }
  80.  
  81. extern void denstroy(){
  82.     if (camera) delete camera;
  83.     if (cube) delete cube;
  84.     if (light0) delete light0;
  85.     if (tex0) delete tex0;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement