Skip to content

Commit f61c2c5

Browse files
marler8997raysan5
andauthored
[rcore][win32] Adding native win32 backend (#4869)
* win32 backend * [rcore][win32] use SwapBuffers instead of wglSwapLayerBuffers I don't understand OpenGL well enough to know the difference between SwapBuffers and wglSwapLayerBuffers but the former seems to double my FPS (from 2000 to about 4000 in core_vr_simulator). * [rcore][win32] stop lying to the OS about when our window is updated Instead of calling BeginPaint/EndPaint in WM_PAINT which signals to the OS that our window content is updated, now when we encounter the WM_PAINT message instead we return back to the raylib application which will trigger it to render a new frame. We've replaced the call to BeginPaint and EndPaint with a call to ValidateRect in SwapBuffers, which, means we're now correctly telling the OS when our window content is actually up-to-date. Note that this doesn't fix the window content not being updated during a window resize/move beacuse thos have their own message loop which doesn't return early when it's time to paint. * [rcore][win32] fallback to finding functions from opengl32.dll * [rcore][win32] fixes from review/for gcc * [rcore][win32] incorporate style conventions * [rcore][win32] workaround unused function error SetupFramebuffer * [rcore][win32] re-enable sanitize flags check for MSAA_4X * [rcore][win32] more style changes and remove old DPI cases Added some more missing spaces after conditional statements. Also made unsupported MSAA_4X an assert instead of an abort and also removed dpi-aware cases for older OS's. More changes would be needed to support those OS versions, namely, removing the dependency on shcore. * [rcore][win32] fixes for compling with w64devkit without -DUNICODE * Update build.zig * Update build.zig --------- Co-authored-by: Ray <[email protected]>
1 parent ecf032f commit f61c2c5

File tree

3 files changed

+2194
-0
lines changed

3 files changed

+2194
-0
lines changed

src/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,10 @@ ifeq ($(PLATFORM_OS), LINUX)
342342
CFLAGS += -fPIC
343343
endif
344344

345+
ifeq ($(PLATFORM_OS),WINDOWS)
346+
CFLAGS += -DUNICODE
347+
endif
348+
345349
ifeq ($(RAYLIB_BUILD_MODE),DEBUG)
346350
CFLAGS += -g -D_DEBUG
347351
endif
@@ -628,6 +632,9 @@ ifeq ($(TARGET_PLATFORM),PLATFORM_DRM)
628632
LDLIBS += -latomic
629633
endif
630634
endif
635+
ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_WIN32)
636+
LDLIBS = -lgdi32 -lwinmm -lopengl32 -lshcore
637+
endif
631638
ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID)
632639
LDLIBS = -llog -landroid -lEGL -lGLESv2 -lOpenSLES -lc -lm
633640
endif

0 commit comments

Comments
 (0)