Browse Source

use luminance_alpha for chunks

feature/replace-renderer
Martin Dørum 3 years ago
parent
commit
d2379331f5
2 changed files with 7 additions and 7 deletions
  1. 6
    6
      libcygnet/src/Renderer.cc
  2. 1
    1
      libcygnet/src/shaders.cc

+ 6
- 6
libcygnet/src/Renderer.cc View File

@@ -162,21 +162,21 @@ void Renderer::draw() {
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, state_->chunkProg.tilesTex); // Necessary?
glUniform1i(state_->chunkProg.tiles, 1);
uint8_t tiles[SwanCommon::CHUNK_WIDTH * SwanCommon::CHUNK_HEIGHT * 3];
uint8_t tiles[SwanCommon::CHUNK_WIDTH * SwanCommon::CHUNK_HEIGHT * 2];
memset(tiles, 0x00, sizeof(tiles));
tiles[1] = 1;
tiles[4] = 2;
tiles[7] = 3;
tiles[3] = 2;
tiles[5] = 3;
glTexImage2D(
GL_TEXTURE_2D, 0, GL_RGB, SwanCommon::CHUNK_WIDTH, SwanCommon::CHUNK_HEIGHT,
0, GL_RGB, GL_UNSIGNED_BYTE, tiles);
GL_TEXTURE_2D, 0, GL_LUMINANCE_ALPHA, SwanCommon::CHUNK_WIDTH, SwanCommon::CHUNK_HEIGHT,
0, GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE, tiles);
glCheck();

glUniform2f(state_->chunkProg.tileAtlasSize,
(float)(int)(state_->atlasTex.width() / SwanCommon::TILE_SIZE),
(float)(int)(state_->atlasTex.height() / SwanCommon::TILE_SIZE));

state_->camera.reset().translate(-0.9, 0.9).scale(0.25, 0.25);
state_->camera.reset().translate(-0.9, 0.9).scale(0.025, 0.025);
glUniformMatrix3fv(state_->chunkProg.camera, 1, GL_TRUE, state_->camera.data());

glActiveTexture(GL_TEXTURE0);

+ 1
- 1
libcygnet/src/shaders.cc View File

@@ -53,7 +53,7 @@ const char *chunkFr = R"glsl(
void main() {
vec2 tilePos = floor(vec2(v_tileCoord.x, -v_tileCoord.y));
vec4 tileColor = texture2D(tiles, tilePos / vec2(CHUNK_WIDTH, CHUNK_HEIGHT));
float tileID = floor((tileColor.r * 256.0 + tileColor.g) * 256.0);
float tileID = floor((tileColor.r * 256.0 + tileColor.a) * 256.0);

vec2 atlasPos = vec2(
tileID + v_tileCoord.x - tilePos.x,

Loading…
Cancel
Save