Browse Source

Merge branch 'master' into overridable_config

pull/4554/head
Ray 1 day ago
committed by GitHub
parent
commit
2beb15b7b4
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
7 changed files with 30 additions and 46 deletions
  1. +12
    -4
      examples/shaders/shaders_deferred_render.c
  2. +2
    -4
      src/Makefile
  3. +1
    -1
      src/platforms/rcore_android.c
  4. +1
    -1
      src/platforms/rcore_desktop_glfw.c
  5. +12
    -34
      src/platforms/rcore_desktop_rgfw.c
  6. +1
    -1
      src/platforms/rcore_drm.c
  7. +1
    -1
      src/platforms/rcore_template.c

+ 12
- 4
examples/shaders/shaders_deferred_render.c View File

@ -95,11 +95,19 @@ int main(void)
rlEnableFramebuffer(gBuffer.framebuffer); rlEnableFramebuffer(gBuffer.framebuffer);
// Since we are storing position and normal data in these textures,
// we need to use a floating point format.
gBuffer.positionTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1);
// NOTE: Vertex positions are stored in a texture for simplicity. A better approach would use a depth texture
// (instead of a detph renderbuffer) to reconstruct world positions in the final render shader via clip-space position,
// depth, and the inverse view/projection matrices.
// 16-bit precision ensures OpenGL ES 3 compatibility, though it may lack precision for real scenarios.
// But as mentioned above, the positions could be reconstructed instead of stored. If not targeting OpenGL ES
// and you wish to maintain this approach, consider using `RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32`.
gBuffer.positionTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, 1);
// Similarly, 16-bit precision is used for normals ensures OpenGL ES 3 compatibility.
// This is generally sufficient, but a 16-bit fixed-point format offer a better uniform precision in all orientations.
gBuffer.normalTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R16G16B16, 1);
gBuffer.normalTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1);
// Albedo (diffuse color) and specular strength can be combined into one texture. // Albedo (diffuse color) and specular strength can be combined into one texture.
// The color in RGB, and the specular strength in the alpha channel. // The color in RGB, and the specular strength in the alpha channel.
gBuffer.albedoSpecTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1); gBuffer.albedoSpecTexture = rlLoadTexture(NULL, screenWidth, screenHeight, RL_PIXELFORMAT_UNCOMPRESSED_R8G8B8A8, 1);

+ 2
- 4
src/Makefile View File

@ -61,11 +61,10 @@
#------------------------------------------------------------------------------------------------ #------------------------------------------------------------------------------------------------
# Define target platform # Define target platform
PLATFORM ?= PLATFORM_DESKTOP PLATFORM ?= PLATFORM_DESKTOP
ifeq ($(PLATFORM), PLATFORM_DESKTOP) ifeq ($(PLATFORM), PLATFORM_DESKTOP)
TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW
TARGET_PLATFORM = PLATFORM_DESKTOP_GLFW
else else
TARGET_PLATFORM = $(PLATFORM)
TARGET_PLATFORM = $(PLATFORM)
endif endif
# Define required raylib variables # Define required raylib variables
@ -122,7 +121,6 @@ SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include
SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib
SDL_LIBRARIES ?= -lSDL2 -lSDL2main SDL_LIBRARIES ?= -lSDL2 -lSDL2main
# Determine if the file has root access (only required to install raylib) # Determine if the file has root access (only required to install raylib)
# "whoami" prints the name of the user that calls him (so, if it is the root user, "whoami" prints "root") # "whoami" prints the name of the user that calls him (so, if it is the root user, "whoami" prints "root")
ROOT = $(shell whoami) ROOT = $(shell whoami)

+ 1
- 1
src/platforms/rcore_android.c View File

@ -627,7 +627,7 @@ int SetGamepadMappings(const char *mappings)
// Set gamepad vibration // Set gamepad vibration
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration) void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
{ {
TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform");
TRACELOG(LOG_WARNING, "SetGamepadVibration() not implemented on target platform");
} }
// Set mouse position XY // Set mouse position XY

+ 1
- 1
src/platforms/rcore_desktop_glfw.c View File

@ -1088,7 +1088,7 @@ int SetGamepadMappings(const char *mappings)
// Set gamepad vibration // Set gamepad vibration
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration) void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
{ {
TRACELOG(LOG_WARNING, "GamepadSetVibration() not available on target platform");
TRACELOG(LOG_WARNING, "SetGamepadVibration() not available on target platform");
} }
// Set mouse position XY // Set mouse position XY

+ 12
- 34
src/platforms/rcore_desktop_rgfw.c View File

@ -168,7 +168,6 @@ static const unsigned short keyMappingRGFW[] = {
[RGFW_SuperL] = KEY_LEFT_SUPER, [RGFW_SuperL] = KEY_LEFT_SUPER,
#ifndef RGFW_MACOS #ifndef RGFW_MACOS
[RGFW_ShiftR] = KEY_RIGHT_SHIFT, [RGFW_ShiftR] = KEY_RIGHT_SHIFT,
[RGFW_AltR] = KEY_RIGHT_ALT, [RGFW_AltR] = KEY_RIGHT_ALT,
#endif #endif
[RGFW_Space] = KEY_SPACE, [RGFW_Space] = KEY_SPACE,
@ -675,7 +674,7 @@ const char *GetClipboardText(void)
return RGFW_readClipboard(NULL); return RGFW_readClipboard(NULL);
} }
#if SUPPORT_CLIPBOARD_IMAGE
#if defined(SUPPORT_CLIPBOARD_IMAGE)
#if defined(_WIN32) #if defined(_WIN32)
#define WIN32_CLIPBOARD_IMPLEMENTATION #define WIN32_CLIPBOARD_IMPLEMENTATION
#define WINUSER_ALREADY_INCLUDED #define WINUSER_ALREADY_INCLUDED
@ -692,10 +691,10 @@ Image GetClipboardImage(void)
#if SUPPORT_CLIPBOARD_IMAGE #if SUPPORT_CLIPBOARD_IMAGE
#if defined(_WIN32) #if defined(_WIN32)
int width = 0;
int height = 0;
unsigned long long int dataSize = 0; unsigned long long int dataSize = 0;
void *fileData = NULL;
int width, height;
fileData = (void *)Win32GetClipboardImageData(&width, &height, &dataSize);
void *fileData = (void *)Win32GetClipboardImageData(&width, &height, &dataSize);
if (fileData == NULL) TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data."); if (fileData == NULL) TRACELOG(LOG_WARNING, "Clipboard image: Couldn't get clipboard data.");
else image = LoadImageFromMemory(".bmp", fileData, dataSize); else image = LoadImageFromMemory(".bmp", fileData, dataSize);
@ -737,9 +736,7 @@ void EnableCursor(void)
void DisableCursor(void) void DisableCursor(void)
{ {
RGFW_disableCursor = true; RGFW_disableCursor = true;
RGFW_window_mouseHold(platform.window, RGFW_AREA(0, 0)); RGFW_window_mouseHold(platform.window, RGFW_AREA(0, 0));
HideCursor(); HideCursor();
} }
@ -792,7 +789,7 @@ int SetGamepadMappings(const char *mappings)
// Set gamepad vibration // Set gamepad vibration
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration) void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
{ {
TRACELOG(LOG_WARNING, "GamepadSetVibration() not available on target platform");
TRACELOG(LOG_WARNING, "SetGamepadVibration() not available on target platform");
} }
// Set mouse position XY // Set mouse position XY
@ -870,6 +867,7 @@ char RSGL_keystrToChar(const char *str)
return '\0'; return '\0';
} }
// Gamepad buttons conversion table
int RGFW_gpConvTable[18] = { int RGFW_gpConvTable[18] = {
[RGFW_GP_Y] = GAMEPAD_BUTTON_RIGHT_FACE_UP, [RGFW_GP_Y] = GAMEPAD_BUTTON_RIGHT_FACE_UP,
[RGFW_GP_B] = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT, [RGFW_GP_B] = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT,
@ -890,8 +888,6 @@ int RGFW_gpConvTable[18] = {
[RGFW_GP_R3] = GAMEPAD_BUTTON_RIGHT_THUMB, [RGFW_GP_R3] = GAMEPAD_BUTTON_RIGHT_THUMB,
}; };
// Register all input events // Register all input events
void PollInputEvents(void) void PollInputEvents(void)
{ {
@ -912,7 +908,6 @@ void PollInputEvents(void)
// Register previous mouse position // Register previous mouse position
// Reset last gamepad button/axis registered state // Reset last gamepad button/axis registered state
for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++) for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++)
{ {
// Check if gamepad is available // Check if gamepad is available
@ -1219,35 +1214,20 @@ int InitPlatform(void)
if ((CORE.Window.flags & FLAG_WINDOW_UNDECORATED) > 0) flags |= RGFW_NO_BORDER; if ((CORE.Window.flags & FLAG_WINDOW_UNDECORATED) > 0) flags |= RGFW_NO_BORDER;
if ((CORE.Window.flags & FLAG_WINDOW_RESIZABLE) == 0) flags |= RGFW_NO_RESIZE; if ((CORE.Window.flags & FLAG_WINDOW_RESIZABLE) == 0) flags |= RGFW_NO_RESIZE;
if ((CORE.Window.flags & FLAG_WINDOW_TRANSPARENT) > 0) flags |= RGFW_TRANSPARENT_WINDOW; if ((CORE.Window.flags & FLAG_WINDOW_TRANSPARENT) > 0) flags |= RGFW_TRANSPARENT_WINDOW;
if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) flags |= RGFW_FULLSCREEN; if ((CORE.Window.flags & FLAG_FULLSCREEN_MODE) > 0) flags |= RGFW_FULLSCREEN;
// NOTE: Some OpenGL context attributes must be set before window creation // NOTE: Some OpenGL context attributes must be set before window creation
// Check selection OpenGL version // Check selection OpenGL version
if (rlGetVersion() == RL_OPENGL_21)
{
RGFW_setGLVersion(RGFW_GL_CORE, 2, 1);
}
else if (rlGetVersion() == RL_OPENGL_33)
{
RGFW_setGLVersion(RGFW_GL_CORE, 3, 3);
}
else if (rlGetVersion() == RL_OPENGL_43)
{
RGFW_setGLVersion(RGFW_GL_CORE, 4, 1);
}
if (rlGetVersion() == RL_OPENGL_21) RGFW_setGLVersion(RGFW_GL_CORE, 2, 1);
else if (rlGetVersion() == RL_OPENGL_33) RGFW_setGLVersion(RGFW_GL_CORE, 3, 3);
else if (rlGetVersion() == RL_OPENGL_43) RGFW_setGLVersion(RGFW_GL_CORE, 4, 1);
if (CORE.Window.flags & FLAG_MSAA_4X_HINT)
{
RGFW_setGLSamples(4);
}
if (CORE.Window.flags & FLAG_MSAA_4X_HINT) RGFW_setGLSamples(4);
platform.window = RGFW_createWindow(CORE.Window.title, RGFW_RECT(0, 0, CORE.Window.screen.width, CORE.Window.screen.height), flags); platform.window = RGFW_createWindow(CORE.Window.title, RGFW_RECT(0, 0, CORE.Window.screen.width, CORE.Window.screen.height), flags);
#ifndef PLATFORM_WEB_RGFW #ifndef PLATFORM_WEB_RGFW
RGFW_area screenSize = RGFW_getScreenSize(); RGFW_area screenSize = RGFW_getScreenSize();
CORE.Window.display.width = screenSize.w; CORE.Window.display.width = screenSize.w;
@ -1256,10 +1236,8 @@ int InitPlatform(void)
CORE.Window.display.width = CORE.Window.screen.width; CORE.Window.display.width = CORE.Window.screen.width;
CORE.Window.display.height = CORE.Window.screen.height; CORE.Window.display.height = CORE.Window.screen.height;
#endif #endif
/*
I think this is needed by Raylib now ?
If so, rcore_destkop_sdl should be updated too
*/
// TODO: Is this needed by raylib now?
// If so, rcore_desktop_sdl should be updated too
//SetupFramebuffer(CORE.Window.display.width, CORE.Window.display.height); //SetupFramebuffer(CORE.Window.display.width, CORE.Window.display.height);
if (CORE.Window.flags & FLAG_VSYNC_HINT) RGFW_window_swapInterval(platform.window, 1); if (CORE.Window.flags & FLAG_VSYNC_HINT) RGFW_window_swapInterval(platform.window, 1);

+ 1
- 1
src/platforms/rcore_drm.c View File

@ -622,7 +622,7 @@ int SetGamepadMappings(const char *mappings)
// Set gamepad vibration // Set gamepad vibration
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration) void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
{ {
TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform");
TRACELOG(LOG_WARNING, "SetGamepadVibration() not implemented on target platform");
} }
// Set mouse position XY // Set mouse position XY

+ 1
- 1
src/platforms/rcore_template.c View File

@ -384,7 +384,7 @@ int SetGamepadMappings(const char *mappings)
// Set gamepad vibration // Set gamepad vibration
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration) void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
{ {
TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform");
TRACELOG(LOG_WARNING, "SetGamepadVibration() not implemented on target platform");
} }
// Set mouse position XY // Set mouse position XY

Loading…
Cancel
Save