- struct cell *cell = pcell((v2i){x,y});
- int selected = world.selected == y*world.w + x;
-
- int tile_offsets[][2] =
- {
- {2, 0}, {0, 3}, {0, 2}, {2, 2},
- {1, 0}, {2, 3}, {3, 2}, {1, 3},
- {3, 1}, {0, 1}, {1, 2}, {2, 1},
- {1, 1}, {3, 3}, {2, 1}, {2, 1}
- };
-
- int uv[2] = { 3, 0 };
-
- if( cell->state & (FLAG_CANAL|FLAG_INPUT|FLAG_OUTPUT) )
- {
- uv[0] = tile_offsets[ cell->config ][0];
- uv[1] = tile_offsets[ cell->config ][1];
- } else continue;
-
- glUniform4f( SHADER_UNIFORM( shader_tile_main, "uOffset" ), (float)x, (float)y, uv[0], uv[1] );
- if( selected )
- {
- glUniform4fv( SHADER_UNIFORM( shader_tile_main, "uColour" ), 1, selected_colour );
- draw_mesh( 0, 2 );
- glUniform4fv( SHADER_UNIFORM( shader_tile_main, "uColour" ), 1, regular_colour );
- }
- else
- draw_mesh( 0, 2 );