Skip to content

Commit 6044522

Browse files
committed
update rgfw
1 parent ac8d144 commit 6044522

1 file changed

Lines changed: 16 additions & 18 deletions

File tree

engine/external/rgfw/RGFW.h

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -393,8 +393,12 @@ int main() {
393393
#ifdef RGFW_WINDOWS
394394
#define OEMRESOURCE
395395
#include <GL/gl.h>
396+
#ifndef GLAPIENTRY
396397
#define GLAPIENTRY APIENTRY
398+
#endif
399+
#ifndef GLAPI
397400
#define GLAPI WINGDIAPI
401+
#endif
398402
#endif
399403

400404
#ifndef __APPLE__
@@ -2268,24 +2272,13 @@ void RGFW_RGB_to_BGR(RGFW_window* win, u8* data) {
22682272
data[index + 2] = red;
22692273
}
22702274
}
2271-
#elif defined(RGFW_OSMESA)
2272-
/**
2273-
* Why is OSMesa missing this procedure
2274-
* This code simply flips the image
2275-
*/
2276-
const i32 col = 4;
2277-
i32 ww = win->r.w;
2278-
i32 wh = win->r.h;
2279-
i32 bw = (i32)win->bufferSize.w;
2280-
for(i32 i = 0; i < wh / 2; i++){
2281-
for(i32 j = 0; j < ww; j++){
2282-
for(i32 d = 0; d < col; d++){
2283-
u8 tmp = data[i * bw * col + j * col + d];
2284-
data[i * bw * col + j * col + d] = ((u8*)win->src.bitmap->data)[(wh - i - 1) * bw * col + j * col + d];
2285-
data[(wh - i - 1) * bw * col + j * col + d] = tmp;
2286-
}
2287-
}
2288-
}
2275+
#elif defined(RGFW_OSMESA)
2276+
u32 y;
2277+
for(y = 0; y < (u32)win->r.h; y++){
2278+
u32 index_from = (y + (win->bufferSize.h - win->r.h)) * 4 * win->bufferSize.w;
2279+
u32 index_to = y * 4 * win->bufferSize.w;
2280+
memcpy(&data[index_to], &data[index_from], 4 * win->bufferSize.w);
2281+
}
22892282
#else
22902283
RGFW_UNUSED(win); RGFW_UNUSED(data);
22912284
#endif
@@ -3589,6 +3582,7 @@ void RGFW_window_initBufferPtr(RGFW_window* win, u8* buffer, RGFW_area area) {
35893582
#ifdef RGFW_OSMESA
35903583
win->src.ctx = OSMesaCreateContext(OSMESA_BGRA, NULL);
35913584
OSMesaMakeCurrent(win->src.ctx, win->buffer, GL_UNSIGNED_BYTE, area.w, area.h);
3585+
OSMesaPixelStore(OSMESA_Y_UP, 0);
35923586
#endif
35933587

35943588
win->src.bitmap = XCreateImage(
@@ -3635,6 +3629,7 @@ void RGFW_window_initBufferPtr(RGFW_window* win, u8* buffer, RGFW_area area) {
36353629
#if defined(RGFW_OSMESA)
36363630
win->src.ctx = OSMesaCreateContext(OSMESA_BGRA, NULL);
36373631
OSMesaMakeCurrent(win->src.ctx, win->buffer, GL_UNSIGNED_BYTE, area.w, area.h);
3632+
OSMesaPixelStore(OSMESA_Y_UP, 0);
36383633
#endif
36393634
#endif
36403635
#else
@@ -6241,6 +6236,7 @@ void RGFW_window_initBufferPtr(RGFW_window* win, u8* buffer, RGFW_area area){
62416236
#if defined(RGFW_OSMESA)
62426237
win->src.ctx = OSMesaCreateContext(OSMESA_BGRA, NULL);
62436238
OSMesaMakeCurrent(win->src.ctx, win->buffer, GL_UNSIGNED_BYTE, area.w, area.h);
6239+
OSMesaPixelStore(OSMESA_Y_UP, 0);
62446240
#endif
62456241
#else
62466242
RGFW_UNUSED(win); RGFW_UNUSED(buffer); RGFW_UNUSED(area); /*!< if buffer rendering is not being used */
@@ -8403,6 +8399,7 @@ void RGFW_window_initBufferPtr(RGFW_window* win, u8* buffer, RGFW_area area) {
84038399
#ifdef RGFW_OSMESA
84048400
win->src.ctx = OSMesaCreateContext(OSMESA_RGBA, NULL);
84058401
OSMesaMakeCurrent(win->src.ctx, win->buffer, GL_UNSIGNED_BYTE, area.w, area.h);
8402+
OSMesaPixelStore(OSMESA_Y_UP, 0);
84068403
#endif
84078404
#else
84088405
RGFW_UNUSED(win); RGFW_UNUSED(buffer); RGFW_UNUSED(area); /*!< if buffer rendering is not being used */
@@ -9944,6 +9941,7 @@ void RGFW_window_initBufferPtr(RGFW_window* win, u8* buffer, RGFW_area area){
99449941
#ifdef RGFW_OSMESA
99459942
win->src.ctx = OSMesaCreateContext(OSMESA_RGBA, NULL);
99469943
OSMesaMakeCurrent(win->src.ctx, win->buffer, GL_UNSIGNED_BYTE, area.w, area.h);
9944+
OSMesaPixelStore(OSMESA_Y_UP, 0);
99479945
#endif
99489946
#else
99499947
RGFW_UNUSED(win); RGFW_UNUSED(buffer); RGFW_UNUSED(area); /*!< if buffer rendering is not being used */

0 commit comments

Comments
 (0)