]> git.tdb.fi Git - libs/gl.git/blobdiff - demos/shaders.cpp
Check the flat qualifier from the correct member
[libs/gl.git] / demos / shaders.cpp
diff --git a/demos/shaders.cpp b/demos/shaders.cpp
deleted file mode 100644 (file)
index 88ad06d..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#include <vector>
-#include <cmath>
-#include <msp/graphics/simplewindow.h>
-#include <msp/gl/capsule.h>
-#include <msp/gl/framebuffer.h>
-#include <msp/gl/light.h>
-#include <msp/gl/lighting.h>
-#include <msp/gl/material.h>
-#include <msp/gl/matrix.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/texture2d.h>
-#include <msp/gl/texturing.h>
-#include <msp/time/timestamp.h>
-#include <msp/time/utils.h>
-#include <msp/time/units.h>
-
-using namespace std;
-using namespace Msp;
-
-int main()
-{
-       Graphics::SimpleGLWindow wnd(800, 800);
-
-       GL::Texture2D tex1;
-       GL::Texture2D tex2;
-
-       char *data = new char[256*256*3];
-       for(unsigned y=0; y<256; ++y)
-               for(unsigned x=0; x<256; ++x)
-               {
-                       unsigned i = x+y*256;
-                       data[i] = ((x/16+y/16)&1 ? 255 : 128);
-               }
-       tex1.storage(GL::LUMINANCE, 256, 256);
-       tex1.set_min_filter(GL::LINEAR);
-       tex1.image(0, GL::LUMINANCE, GL::UNSIGNED_BYTE, data);
-
-       for(unsigned y=0; y<256; ++y)
-               for(unsigned x=0; x<256; ++x)
-               {
-                       float yf = (y%16)/40.0-0.2;
-                       float xf = (x%16)/40.0-0.2;
-                       unsigned i = (x+y*256)*3;
-                       float l = sqrt(xf*xf+yf*yf+1);
-                       data[i] = static_cast<unsigned>((1+xf/l)*127);
-                       data[i+1] = static_cast<unsigned>((1+yf/l)*127);
-                       data[i+2] = static_cast<unsigned>((1+1/l)*127);
-               }
-       tex2.storage(GL::RGB, 256, 256);
-       tex2.set_min_filter(GL::LINEAR);
-       tex2.image(0, GL::RGB, GL::UNSIGNED_BYTE, data);
-       delete[] data;
-
-       GL::Mesh mesh((GL::VERTEX3, GL::NORMAL3, GL::TEXCOORD2, GL::COLOR4_UBYTE, GL::TANGENT3, GL::BINORMAL3));
-       GL::MeshBuilder bld(mesh);
-       bld.color(0.5f, 1.0f, 0.0f);
-       GL::CapsuleBuilder(1, 0.72498, 32, 17).texture_fit(GL::GeometryBuilder::WRAP).tbn().build(bld);
-       GL::Material mat;
-       mat.set_diffuse(GL::Color(0.5, 1.0, 0.0));
-       mat.set_specular(GL::Color(0.45, 0.5, 0.4));
-       mat.set_shininess(50);
-       vector<GL::Program *> programs;
-       for(unsigned i=0; i<12; ++i)
-       {
-               GL::ProgramBuilder::StandardFeatures feat;
-               feat.material = i/4>0;
-               feat.texture = i/4>1;
-               feat.lighting = i%4>0;
-               feat.normal_map = i%4>1;
-               feat.specular = i%4>2;
-               programs.push_back(new GL::Program(feat));
-       }
-
-       GL::ProgramData progdata;
-       progdata.uniform("texture", 0);
-       progdata.uniform("normalmap", 1);
-
-       GL::Lighting lighting;
-       GL::Light light;
-       light.set_position(GL::Vector4(0, -0.781, 0.625, 0));
-       lighting.attach(0, light);
-
-       GL::Texturing texturing;
-       texturing.attach(0, tex1);
-       texturing.attach(1, tex2);
-
-       GL::MatrixStack::projection() = GL::Matrix::frustum(-0.1, 0.1, -0.1, 0.1, 0.2, 20);
-       GL::MatrixStack::modelview() = GL::Matrix::translation(0, 0, -10);
-       GL::MatrixStack::modelview() *= GL::Matrix::rotation_deg(85, -1, 0, 0);
-
-       wnd.show();
-       float angle = 0.0;
-       Time::TimeStamp last;
-       while(1)
-       {
-               wnd.get_display().tick();
-               GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT|GL::DEPTH_BUFFER_BIT);
-               {
-                       GL::Bind bind_depth(GL::DepthTest::lequal());
-                       GL::Renderer renderer(0);
-                       renderer.set_lighting(&lighting);
-                       renderer.set_material(&mat);
-                       renderer.set_texturing(&texturing);
-                       renderer.add_shader_data(progdata);
-                       for(unsigned i=0; i<12; ++i)
-                       {
-                               GL::Renderer::Push push(renderer);
-                               renderer.set_shader_program(programs[i]);
-                               renderer.transform(GL::Matrix::translation(-3.3+(i%4)*2.2, 0, -3.5+(i/4)*3.0));
-                               renderer.transform(GL::Matrix::rotation(angle, 0, 0, 1));
-                               mesh.draw(renderer);
-                       }
-               }
-               wnd.swap_buffers();
-               Time::TimeStamp t = Time::now();
-               if(last)
-                       angle += 0.5*((t-last)/Time::sec);
-               last = t;
-       }
-
-       return 0;
-}