Skip to content

Commit

Permalink
Implementing GetMonitorWidth/Height for DRM (raysan5#3956)
Browse files Browse the repository at this point in the history
* Implementing GetMonitorWidth/Height and GetMonitorPhysicalWidth/Height for drm

Added implementation for DRM for functions :
 - GetMonitorWidth()
 - GetMonitorHeight()
 - GetMonitorPhysicalWidth()
 - GetMonitorPhysicalHeight()
 - GetMonnitorName()

These functions take an argument but only the value 0 is accepted. This is because the DRM platform implementation manages only one screen for now

* Refactor "GetMonitor" properties for DRM Platform

Refactored GetMonitorHeight, GetMonitorWidth, GetMonitorPhysicalHeight,
GetMonitorPhysicalWidth and GetMonitorName to accept only argument "0"
as more than one screen is not supported in DRM platform.
  • Loading branch information
gabriel-marques authored May 7, 2024
1 parent f69ae58 commit fa2b1c8
Showing 1 changed file with 60 additions and 10 deletions.
70 changes: 60 additions & 10 deletions src/platforms/rcore_drm.c
Original file line number Diff line number Diff line change
Expand Up @@ -388,29 +388,69 @@ Vector2 GetMonitorPosition(int monitor)
// Get selected monitor width (currently used by monitor)
int GetMonitorWidth(int monitor)
{
TRACELOG(LOG_WARNING, "GetMonitorWidth() not implemented on target platform");
return 0;
int width = 0;

if (monitor != 0)
{
TRACELOG(LOG_WARNING, "GetMonitorWidth() implemented for first monitor only");
}
else if ((platform.connector) && (platform.modeIndex >= 0))
{
width = platform.connector->modes[platform.modeIndex].hdisplay;
}

return width;
}

// Get selected monitor height (currently used by monitor)
int GetMonitorHeight(int monitor)
{
TRACELOG(LOG_WARNING, "GetMonitorHeight() not implemented on target platform");
return 0;
int height = 0;

if (monitor != 0)
{
TRACELOG(LOG_WARNING, "GetMonitorHeight() implemented for first monitor only");
}
else if ((platform.connector) && (platform.modeIndex >= 0))
{
height = platform.connector->modes[platform.modeIndex].vdisplay;
}

return height;
}

// Get selected monitor physical width in millimetres
int GetMonitorPhysicalWidth(int monitor)
{
TRACELOG(LOG_WARNING, "GetMonitorPhysicalWidth() not implemented on target platform");
return 0;
int physicalWidth = 0;

if (monitor != 0)
{
TRACELOG(LOG_WARNING, "GetMonitorPhysicalWidth() implemented for first monitor only");
}
else if ((platform.connector) && (platform.modeIndex >= 0))
{
physicalWidth = platform.connector->mmWidth;
}

return physicalWidth;
}

// Get selected monitor physical height in millimetres
int GetMonitorPhysicalHeight(int monitor)
{
TRACELOG(LOG_WARNING, "GetMonitorPhysicalHeight() not implemented on target platform");
return 0;
int physicalHeight = 0;

if (monitor != 0)
{
TRACELOG(LOG_WARNING, "GetMonitorPhysicalHeight() implemented for first monitor only");
}
else if ((platform.connector) && (platform.modeIndex >= 0))
{
physicalHeight = platform.connector->mmHeight;
}

return physicalHeight;
}

// Get selected monitor refresh rate
Expand All @@ -429,8 +469,18 @@ int GetMonitorRefreshRate(int monitor)
// Get the human-readable, UTF-8 encoded name of the selected monitor
const char *GetMonitorName(int monitor)
{
TRACELOG(LOG_WARNING, "GetMonitorName() not implemented on target platform");
return "";
const char *name = "";

if (monitor != 0)
{
TRACELOG(LOG_WARNING, "GetMonitorName() implemented for first monitor only");
}
else if ((platform.connector) && (platform.modeIndex >= 0))
{
name = platform.connector->modes[platform.modeIndex].name;
}

return name;
}

// Get window position XY on monitor
Expand Down

0 comments on commit fa2b1c8

Please sign in to comment.