Voxel Viewport
This commit is contained in:
@ -461,19 +461,23 @@ void viewport_server_end_frame(void) {
|
|||||||
|
|
||||||
g_stagingWriteIdx = writeIdx ^ 1;
|
g_stagingWriteIdx = writeIdx ^ 1;
|
||||||
}
|
}
|
||||||
//#elif defined(KINC_OPENGL)
|
#elif defined(KINC_OPENGL)
|
||||||
// glReadPixels(0, 0, g_viewport_state.width, g_viewport_state.height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
|
glReadBuffer(GL_BACK);
|
||||||
// size_t row_size = g_viewport_state.width * 4;
|
glReadPixels(0, 0, g_viewport_state.width, g_viewport_state.height,
|
||||||
// for (int y = 0; y < g_viewport_state.height / 2; ++y) {
|
GL_RGBA, GL_UNSIGNED_BYTE, pixels);
|
||||||
// uint8_t* row_top = pixels + y * row_size;
|
// OpenGL reads bottom-to-top; flip to top-to-bottom to match D3D11 convention
|
||||||
// uint8_t* row_bottom = pixels + (g_viewport_state.height - 1 - y) * row_size;
|
size_t row_size = (size_t)g_viewport_state.width * 4;
|
||||||
// for (size_t x = 0; x < row_size; ++x) {
|
for (int y = 0; y < g_viewport_state.height / 2; ++y) {
|
||||||
// uint8_t temp = row_top[x];
|
uint8_t* row_top = pixels + y * row_size;
|
||||||
// row_top[x] = row_bottom[x];
|
uint8_t* row_bottom = pixels + (g_viewport_state.height - 1 - y) * row_size;
|
||||||
// row_bottom[x] = temp;
|
for (size_t x = 0; x < row_size; ++x) {
|
||||||
// }
|
uint8_t temp = row_top[x];
|
||||||
// }
|
row_top[x] = row_bottom[x];
|
||||||
// memcpy(pixel_dest, pixels, pixel_size);
|
row_bottom[x] = temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
memcpy(pixel_dest, pixels, pixel_size);
|
||||||
|
pixels_written = true;
|
||||||
#else
|
#else
|
||||||
// other platforms use render target
|
// other platforms use render target
|
||||||
if (g_viewport_state.render_target) {
|
if (g_viewport_state.render_target) {
|
||||||
|
|||||||
Reference in New Issue
Block a user