the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 65 lines 1.7 kB view raw
1#include "stdafx.h" 2#include "Lighting.h" 3#include "..\Minecraft.World\FloatBuffer.h" 4#include "..\Minecraft.World\Vec3.h" 5 6FloatBuffer *Lighting::lb = new FloatBuffer(16); 7 8 9void Lighting::turnOff() 10{ 11 glDisable(GL_LIGHTING); 12 glDisable(GL_LIGHT0); 13 glDisable(GL_LIGHT1); 14 glDisable(GL_COLOR_MATERIAL); 15} 16 17void Lighting::turnOn() 18{ 19 glEnable(GL_LIGHTING); 20 glEnable(GL_LIGHT0); 21 glEnable(GL_LIGHT1); 22 glEnable(GL_COLOR_MATERIAL); 23 glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE); 24 float a = 0.4f; 25 float d = 0.6f; 26 float s = 0.0f; 27 28 Vec3 *l = Vec3::newTemp(0.2f, 1.0f, -0.7f)->normalize(); 29 glLight(GL_LIGHT0, GL_POSITION, getBuffer(l->x, l->y, l->z, 0)); 30 glLight(GL_LIGHT0, GL_DIFFUSE, getBuffer(d, d, d, 1)); 31 glLight(GL_LIGHT0, GL_AMBIENT, getBuffer(0.0f, 0.0f, 0.0f, 1.0f)); 32 glLight(GL_LIGHT0, GL_SPECULAR, getBuffer(s, s, s, 1.0f)); 33 34 l = Vec3::newTemp(-0.2f, 1.0f, 0.7f)->normalize(); 35 glLight(GL_LIGHT1, GL_POSITION, getBuffer(l->x, l->y, l->z, 0)); 36 glLight(GL_LIGHT1, GL_DIFFUSE, getBuffer(d, d, d, 1)); 37 glLight(GL_LIGHT1, GL_AMBIENT, getBuffer(0.0f, 0.0f, 0.0f, 1.0f)); 38 glLight(GL_LIGHT1, GL_SPECULAR, getBuffer(s, s, s, 1.0f)); 39 40 glShadeModel(GL_FLAT); 41 glLightModel(GL_LIGHT_MODEL_AMBIENT, getBuffer(a, a, a, 1)); 42 43} 44 45FloatBuffer *Lighting::getBuffer(double a, double b, double c, double d) 46{ 47 return getBuffer((float) a, (float) b, (float) c, (float) d); 48} 49 50FloatBuffer *Lighting::getBuffer(float a, float b, float c, float d) 51{ 52 lb->clear(); 53 lb->put(a)->put(b)->put(c)->put(d); 54 lb->flip(); 55 return lb; 56} 57 58void Lighting::turnOnGui() 59{ 60 glPushMatrix(); 61 glRotatef(-30, 0, 1, 0); 62 glRotatef(165, 1, 0, 0); 63 turnOn(); 64 glPopMatrix(); 65}