Advertisement
Caiwan

teszt2.cpp

Oct 12th, 2012
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. #include "../../engine/source/CSNCapi.hpp"
  2. #include "intiwindow_1.hpp"
  3.  
  4. #include "test.h"
  5.  
  6. namespace {
  7. #include "cube.h"
  8. #include "shader.h"
  9.  
  10.     FWrender::camera *camera;
  11.     FWrender::vertex_array *cube;
  12.     FWrender::light *light0;
  13.     FWrender::texture *tex0;
  14.  
  15.     FWrender::shader *shader;
  16.  
  17.     static float t,u;
  18. }
  19.  
  20. int main(){
  21.     FWcore::winsettings_t *wnd = new FWcore::winsettings_t;
  22.     initwindow(wnd);
  23.     if (wnd->i_isexit) return 1;
  24.  
  25.     FWcore::initFw("Teszt", wnd);
  26.     {
  27.         FWrender::setupRenderer(wnd);
  28.        
  29.         camera = new FWrender::camera();
  30.         camera->setUp(0,1,0);
  31.         camera->setCenter(0,0,0);
  32.  
  33.         cube = new FWrender::vertex_array();
  34.  
  35.         cube->setVertexPointer((void*)cube_vertices,     3, cube_vertex_length, false);
  36.         cube->setNormalPointer((void*)cube_normals,      3, cube_vertex_length, false);
  37.         cube->setTexturePointer((void*)cube_texture_uvs, 2, cube_vertex_length, false);
  38.  
  39.         light0 = new FWrender::light();
  40.         light0->setPosition(5,5,5);
  41.  
  42.         unsigned char *bmp = new unsigned char[256*256*3];
  43.         for (int x = 0; x<256; x++)
  44.             for (int y = 0; y<256; y++)
  45.                 bmp[3*(256*x+y)] = bmp[3*(256*x+y)+1] = bmp[3*(256*x+y)+2] = x^y;
  46.        
  47.         tex0 = new FWrender::texture();
  48.         tex0->setSize(256,256,3);
  49.         tex0->build(bmp);
  50.  
  51.         delete bmp;
  52.  
  53.         shader = new FWrender::shader();
  54.         shader ->createFromMemory(vertexShader_source, fragmentShader_source);
  55.        
  56.         bool exit = false;
  57.         do {
  58.            
  59.             FWrender::clearScene();
  60.             // render 'til infinity
  61.  
  62.                 camera->setEye(5*sin(t), 4, 5*cos(t));
  63.  
  64.                 camera->projectScene();
  65.                 camera->lookAtScene();
  66.  
  67.                 light0->bind();
  68.  
  69.                 //FWrender::switchTextue2D(true);
  70.  
  71.                 tex0->bind();
  72.  
  73.                 shader->bind();
  74.                 shader->set("tex0", (int)0);
  75.  
  76.                 cube->bindAll();
  77.                 cube->setDrawType(FWrender::VBO_DRAW::VD_QUADS);
  78.                 //debugcube();
  79.                 cube->drawByIndex((void*)0, cube_indices_length, FWrender::DT_UNSIGNED_SHORT);
  80.                 cube->unbindAll();
  81.  
  82.                 shader->unbind();
  83.  
  84.                 tex0->unbind();
  85.  
  86.                 light0->unbind();
  87.  
  88.                 t += 0.005; u += 0.0006; // khurwa
  89.  
  90.             FWrender::flush(); FWcore::SwapBuffers();
  91.         } while (!(FWcore::peekWndMessage() || exit));
  92.  
  93.         FWrender::denstroyRenderer();
  94.     }
  95.  
  96.     if (camera) delete camera;
  97.     if (cube) delete cube;
  98.     if (light0) delete light0;
  99.     if (tex0) delete tex0;
  100.     if (shader) delete shader;
  101.  
  102.     if (wnd) delete wnd;
  103.    
  104.     FWcore::releaseFw(0);
  105.  
  106.     return 0;
  107. }
  108.  
  109. // win32 shit and fuck
  110. #include "Windows.h"
  111. int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR, int){return main();}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement