forked from LeenkxTeam/LNXRNT
Cleanup
This commit is contained in:
@ -1,6 +1,6 @@
|
|||||||
/**
|
/**
|
||||||
* Viewport Server Implementation - Shared Memory Framebuffer Export
|
* Viewport Server Implementation - Shared Memory Framebuffer Export
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "viewport_server.h"
|
#include "viewport_server.h"
|
||||||
@ -259,7 +259,6 @@ bool viewport_server_init(const char* shmem_name, int width, int height) {
|
|||||||
memset(pixel_dest, 0, max_pixel_size);
|
memset(pixel_dest, 0, max_pixel_size);
|
||||||
|
|
||||||
#if !defined(KINC_DIRECT3D11) && !defined(KINC_OPENGL)
|
#if !defined(KINC_DIRECT3D11) && !defined(KINC_OPENGL)
|
||||||
// Only create render target for platforms that need it (not Direct3D11 or OpenGL)
|
|
||||||
kinc_g4_render_target_t* rt = (kinc_g4_render_target_t*)malloc(sizeof(kinc_g4_render_target_t));
|
kinc_g4_render_target_t* rt = (kinc_g4_render_target_t*)malloc(sizeof(kinc_g4_render_target_t));
|
||||||
if (!rt) {
|
if (!rt) {
|
||||||
kinc_log(KINC_LOG_LEVEL_ERROR, "Failed to allocate render target");
|
kinc_log(KINC_LOG_LEVEL_ERROR, "Failed to allocate render target");
|
||||||
@ -426,33 +425,33 @@ void viewport_server_end_frame(void) {
|
|||||||
memcpy(pixel_dest, pixels, pixel_size);
|
memcpy(pixel_dest, pixels, pixel_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#elif defined(KINC_OPENGL)
|
//#elif defined(KINC_OPENGL)
|
||||||
// OpenGL - read from default framebuffer using glReadPixels
|
// glReadPixels(0, 0, g_viewport_state.width, g_viewport_state.height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
|
||||||
glReadPixels(0, 0, g_viewport_state.width, g_viewport_state.height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
|
// size_t row_size = g_viewport_state.width * 4;
|
||||||
// OpenGL returns pixels bottom-to-top, need to flip
|
// for (int y = 0; y < g_viewport_state.height / 2; ++y) {
|
||||||
size_t row_size = g_viewport_state.width * 4;
|
// uint8_t* row_top = pixels + y * row_size;
|
||||||
for (int y = 0; y < g_viewport_state.height / 2; ++y) {
|
// uint8_t* row_bottom = pixels + (g_viewport_state.height - 1 - y) * row_size;
|
||||||
uint8_t* row_top = pixels + y * row_size;
|
// for (size_t x = 0; x < row_size; ++x) {
|
||||||
uint8_t* row_bottom = pixels + (g_viewport_state.height - 1 - y) * row_size;
|
// uint8_t temp = row_top[x];
|
||||||
for (size_t x = 0; x < row_size; ++x) {
|
// row_top[x] = row_bottom[x];
|
||||||
uint8_t temp = row_top[x];
|
// row_bottom[x] = temp;
|
||||||
row_top[x] = row_bottom[x];
|
// }
|
||||||
row_bottom[x] = temp;
|
// }
|
||||||
}
|
// memcpy(pixel_dest, pixels, pixel_size);
|
||||||
}
|
|
||||||
memcpy(pixel_dest, pixels, pixel_size);
|
|
||||||
#else
|
#else
|
||||||
// other platforms use render target
|
// other platforms use render target
|
||||||
kinc_g4_render_target_t* rt = (kinc_g4_render_target_t*)g_viewport_state.render_target;
|
if (g_viewport_state.render_target) {
|
||||||
kinc_g4_render_target_get_pixels(rt, pixels);
|
kinc_g4_render_target_t* rt = (kinc_g4_render_target_t*)g_viewport_state.render_target;
|
||||||
memcpy(pixel_dest, pixels, pixel_size);
|
kinc_g4_render_target_get_pixels(rt, pixels);
|
||||||
|
memcpy(pixel_dest, pixels, pixel_size);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
g_viewport_state.frame_count++;
|
g_viewport_state.frame_count++;
|
||||||
header->frame_id = g_viewport_state.frame_count;
|
header->frame_id = g_viewport_state.frame_count;
|
||||||
|
|
||||||
// NOTE: Camera sync from Krom to Blender is handled via viewport_server_set_camera()
|
// NOTE: Camera sync from RunT to Blender is handled via viewport_server_set_camera()
|
||||||
// which is called explicitly when Krom's internal camera changes.
|
// which is called explicitly when RunT's internal camera changes.
|
||||||
// We do NOT extract camera from view_matrix here as that would create a feedback loop
|
// We do NOT extract camera from view_matrix here as that would create a feedback loop
|
||||||
// (Blender sends view_matrix -> we extract camera -> Blender applies it -> repeat)
|
// (Blender sends view_matrix -> we extract camera -> Blender applies it -> repeat)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user