]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/cubemap.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / demos / cubemap.cpp
diff --git a/demos/cubemap.cpp b/demos/cubemap.cpp
deleted file mode 100644 (file)
index 512f519..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-#include <cstdlib>
-#include <msp/gl/box.h>
-#include <msp/gl/cylinder.h>
-#include <msp/gl/framebuffer.h>
-#include <msp/gl/light.h>
-#include <msp/gl/lighting.h>
-#include <msp/gl/material.h>
-#include <msp/gl/mesh.h>
-#include <msp/gl/meshbuilder.h>
-#include <msp/gl/program.h>
-#include <msp/gl/programdata.h>
-#include <msp/gl/renderer.h>
-#include <msp/gl/tests.h>
-#include <msp/gl/texturecube.h>
-#include <msp/graphics/simplewindow.h>
-
-using namespace Msp;
-
-void create_face_texture(GL::TextureCube &texture, GL::TextureCubeFace face)
-{
-       unsigned char *pixels = new unsigned char[128*128*3];
-       for(int y=0; y<128; ++y)
-               for(int x=0; x<128; ++x)
-               {
-                       unsigned i = (x+y*128)*3;
-                       GL::Vector3 v = texture.get_texel_direction(face, x, y);
-                       if(v.y>0)
-                       {
-                               pixels[i] = 96-48*v.y;
-                               pixels[i+1] = 168-84*v.y;
-                               pixels[i+2] = 255;
-                       }
-                       else
-                       {
-                               pixels[i] = rand()%32;
-                               pixels[i+1] = 128-rand()%32;
-                               pixels[i+2] = rand()%32;
-                       }
-               }
-       texture.image(face, 0, GL::RGB, GL::UNSIGNED_BYTE, pixels);
-       delete[] pixels;
-}
-
-int main()
-{
-       Graphics::SimpleGLWindow window(600, 400);
-
-       GL::TextureCube texture;
-       texture.storage(GL::RGB, 128);
-       texture.set_min_filter(GL::LINEAR);
-       texture.set_wrap(GL::CLAMP_TO_EDGE);
-       for(unsigned i=0; i<6; ++i)
-               create_face_texture(texture, texture.enumerate_faces(i));
-
-       GL::Mesh skybox((GL::VERTEX3, GL::TEXCOORD3));
-       GL::BoxBuilder(10, 10, 10).build(skybox);
-       for(unsigned i=0; i<skybox.get_n_vertices(); ++i)
-       {
-               float *v = skybox.modify_vertex(i);
-               for(unsigned j=0; j<3; ++j)
-                       v[3+j] = v[j];
-       }
-
-       GL::Mesh box((GL::VERTEX3, GL::NORMAL3));
-       GL::BoxBuilder(2, 2, 2).build(box);
-
-       GL::Mesh cylinder((GL::VERTEX3, GL::NORMAL3));
-       GL::CylinderBuilder(1, 2, 32).build(cylinder);
-
-       GL::Lighting lighting;
-       lighting.set_ambient(GL::Color(0.3));
-       GL::Light light0;
-       light0.set_diffuse(GL::Color(0.6));
-       light0.set_position(GL::Vector4(-1, 1, 1, 0));
-       lighting.attach(0, light0);
-       GL::Light light1;
-       light1.set_diffuse(GL::Color(0.2));
-       light1.set_position(GL::Vector4(1, 1, 0, 0));
-       lighting.attach(1, light1);
-
-       GL::Material material;
-       material.set_diffuse(GL::Color(0.4));
-       material.set_ambient(GL::Color(0.4));
-       material.set_specular(GL::Color(1.0));
-       material.set_shininess(100);
-
-       GL::ProgramBuilder::StandardFeatures features;
-       features.lighting = true;
-       features.specular = true;
-       features.material = true;
-       features.reflection = true;
-       GL::Program shprog(features);
-       GL::ProgramData shdata;
-       shdata.uniform("environment", 0);
-       shdata.uniform("reflectivity", 0.5f);
-
-       GL::MatrixStack::projection() = GL::Matrix::frustum_centered(0.15, 0.1, 0.1, 10);
-
-       window.show();
-       float angle = 0;
-       while(1)
-       {
-               window.tick();
-               GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT);
-               {
-                       GL::Renderer renderer(0);
-                       renderer.set_texture(&texture);
-                       skybox.draw(renderer);
-               }
-               {
-                       GL::Bind bind_light(lighting);
-                       GL::Bind bind_depth(GL::DepthTest::lequal());
-                       GL::Renderer renderer(0);
-                       renderer.set_material(&material);
-                       renderer.set_shader_program(&shprog, &shdata);
-                       renderer.set_texture(&texture);
-                       renderer.matrix_stack() *= GL::Matrix::translation(0, 0, -7);
-                       {
-                               GL::Renderer::Push _push(renderer);
-                               renderer.matrix_stack() *= GL::Matrix::translation(-2, 0, 0);
-                               renderer.matrix_stack() *= GL::Matrix::rotation(angle/2.3, 0, 1, 0);
-                               renderer.matrix_stack() *= GL::Matrix::rotation(angle, 1, 0.25, 0);
-                               box.draw(renderer);
-                       }
-                       {
-                               GL::Renderer::Push _push(renderer);
-                               renderer.matrix_stack() *= GL::Matrix::translation(2, 0, 0);
-                               renderer.matrix_stack() *= GL::Matrix::rotation(-angle/2.3, 0, 1, 0);
-                               renderer.matrix_stack() *= GL::Matrix::rotation(angle, 1, 0.25, 0);
-                               cylinder.draw(renderer);
-                       }
-               }
-               window.swap_buffers();
-               angle += 0.0001;
-       }
-
-       return 0;
-}