Shit is broke :(
This commit is contained in:
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
Before Width: | Height: | Size: 6.1 KiB |
@@ -55,8 +55,8 @@ void Engine::initGL()
|
||||
glEnable(GL_CULL_FACE);
|
||||
glEnable(GL_VERTEX_ARRAY);
|
||||
glEnable(GL_LIGHTING);
|
||||
glEnable(GL_ALPHA_TEST);
|
||||
glAlphaFunc(GL_GREATER, 0.05f); //Anything with an opacity of less than 5% gets thrown out
|
||||
//glEnable(GL_ALPHA_TEST);
|
||||
//glAlphaFunc(GL_GREATER, 0.05f); //Anything with an opacity of less than 5% gets thrown out
|
||||
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
|
||||
//glEnable(GL_LIGHT0);
|
||||
//glEnable(GL_COLOR_MATERIAL);
|
||||
@@ -70,7 +70,7 @@ void Engine::initGL()
|
||||
engine->window->setResizable(false);
|
||||
engine->initGL();
|
||||
engine->loadConfig();
|
||||
engine->world->setAmbientLightColor(1.0f, 1.0f, 1.0f, 1.0f);
|
||||
engine->world->setAmbientLightColor(2.0f, 2.0f, 2.0f, 0.5f);
|
||||
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
|
||||
|
||||
//glDisable(GL_CULL_FACE);
|
||||
|
@@ -154,7 +154,6 @@ void Entity::render() {
|
||||
glClientActiveTexture(GL_TEXTURE0);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
if (multiTexture) {
|
||||
@@ -172,6 +171,7 @@ void Entity::render() {
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glClientActiveTexture(GL_TEXTURE0);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glBindTexture(GL_TEXTURE_2D, multi->id);
|
||||
@@ -185,8 +185,10 @@ void Entity::render() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
|
||||
}
|
||||
|
||||
//Mode for unit 0.
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
//glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
//glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||
|
||||
int i = 0;
|
||||
for(auto& texture : multi->multi) {
|
||||
@@ -196,8 +198,6 @@ void Entity::render() {
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, texture.id);
|
||||
|
||||
if (!engine->useVBO) {
|
||||
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), &getGeometry()->vertices[0].x);
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(TextureCoordinate), &getGeometry()->texCoords[0].x);
|
||||
@@ -207,37 +207,26 @@ void Entity::render() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
|
||||
}
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); // Combine RGB and alpha
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); // Modulate RGB
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PREVIOUS);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR);
|
||||
|
||||
//Mode for every other unit. We basically "add" each subsequent texture to the previous one like a stack.
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_INTERPOLATE); // Interpolate ALPHA with ALPHA
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA, GL_TEXTURE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_ALPHA, GL_CONSTANT);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_ALPHA, GL_SRC_ALPHA);
|
||||
GLfloat fullBright[4] = {1.0f, 1.0f, 1.0f, 1.0f};
|
||||
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, fullBright);
|
||||
glBindTexture(GL_TEXTURE_2D, texture.id);
|
||||
i++;
|
||||
}
|
||||
|
||||
//Put on the last one. Which is the ambient light.
|
||||
GLuint ambientLightTexture;
|
||||
glGenTextures(1, &ambientLightTexture);
|
||||
GLfloat ambientLight[4] = {
|
||||
1.0f - engine->world->getAmbientLightColor().x,
|
||||
1.0f - engine->world->getAmbientLightColor().y,
|
||||
1.0f - engine->world->getAmbientLightColor().z,
|
||||
engine->world->getAmbientLightColor().w
|
||||
};
|
||||
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT, &ambientLight);
|
||||
|
||||
glActiveTexture(GL_TEXTURE1 + i);
|
||||
glClientActiveTexture(GL_TEXTURE1 + i);
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glEnableClientState(GL_VERTEX_ARRAY);
|
||||
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
|
||||
glBindTexture(GL_TEXTURE_2D, ambientLightTexture);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE);
|
||||
|
||||
|
||||
if (!engine->useVBO) {
|
||||
glVertexPointer(3, GL_FLOAT, sizeof(Vertex), &getGeometry()->vertices[0].x);
|
||||
glTexCoordPointer(2, GL_FLOAT, sizeof(TextureCoordinate), &getGeometry()->texCoords[0].x);
|
||||
@@ -247,7 +236,9 @@ void Entity::render() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, getGeometry()->tbo);
|
||||
glTexCoordPointer(2, GL_FLOAT, 0, nullptr);
|
||||
}
|
||||
i++;
|
||||
|
||||
glEnable(GL_BLEND);
|
||||
//i++;
|
||||
//Draw code
|
||||
if (!engine->useVBO)
|
||||
glDrawElements(GL_TRIANGLES, getGeometry()->indices.size(), GL_UNSIGNED_INT, &getGeometry()->indices[0]);
|
||||
@@ -265,7 +256,8 @@ void Entity::render() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
|
||||
glDeleteTextures(1, &ambientLightTexture);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
for (int j = 0; j <= i; j++) {
|
||||
glActiveTexture(GL_TEXTURE1 + j);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
@@ -273,11 +265,10 @@ void Entity::render() {
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
}
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
//glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glDisableClientState(GL_VERTEX_ARRAY);
|
||||
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
|
||||
glDisable(GL_BLEND);
|
||||
}
|
||||
|
||||
if (engine->debug) {
|
||||
@@ -290,7 +281,7 @@ void Entity::render() {
|
||||
if (engine->world->getGlobalFogMode() != NULL)
|
||||
glEnable(GL_FOG);
|
||||
|
||||
glPopMatrix(); // Pop the transformation matrix
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
bool Entity::isCollidingWith(Entity *entity) {
|
||||
|
Reference in New Issue
Block a user