Skip to content

Commit

Permalink
Use function declarations from gbm.h
Browse files Browse the repository at this point in the history
  • Loading branch information
ChrisThrasher committed Oct 26, 2022
1 parent ccde175 commit ae3f710
Showing 1 changed file with 16 additions and 26 deletions.
42 changes: 16 additions & 26 deletions src/SFML/Window/DRM/DRMContext.cpp
Expand Up @@ -46,13 +46,6 @@
#include <glad/egl.h>
#endif

#define WEAK __attribute__((weak))

WEAK uint64_t gbm_bo_get_modifier(gbm_bo* bo);
WEAK int gbm_bo_get_plane_count(gbm_bo* bo);
WEAK uint32_t gbm_bo_get_stride_for_plane(gbm_bo* bo, int plane);
WEAK uint32_t gbm_bo_get_offset(gbm_bo* bo, int plane);

namespace
{
bool initialized = false;
Expand Down Expand Up @@ -165,29 +158,26 @@ namespace
height = gbm_bo_get_height(&bo);
format = gbm_bo_get_format(&bo);

if (gbm_bo_get_modifier && gbm_bo_get_plane_count && gbm_bo_get_stride_for_plane && gbm_bo_get_offset)
uint64_t modifiers[4] = {0};
modifiers[0] = gbm_bo_get_modifier(&bo);
const int num_planes = gbm_bo_get_plane_count(&bo);
for (int i = 0; i < num_planes; i++)
{
uint64_t modifiers[4] = {0};
modifiers[0] = gbm_bo_get_modifier(&bo);
const int num_planes = gbm_bo_get_plane_count(&bo);
for (int i = 0; i < num_planes; i++)
{
strides[i] = gbm_bo_get_stride_for_plane(&bo, i);
handles[i] = gbm_bo_get_handle(&bo).u32;
offsets[i] = gbm_bo_get_offset(&bo, i);
modifiers[i] = modifiers[0];
}

if (modifiers[0])
{
flags = DRM_MODE_FB_MODIFIERS;
}
strides[i] = gbm_bo_get_stride_for_plane(&bo, i);
handles[i] = gbm_bo_get_handle(&bo).u32;
offsets[i] = gbm_bo_get_offset(&bo, i);
modifiers[i] = modifiers[0];
}

ret = drmModeAddFB2WithModifiers(drmFd, width, height,
format, handles, strides, offsets,
modifiers, &fb->fbId, flags);
if (modifiers[0])
{
flags = DRM_MODE_FB_MODIFIERS;
}

ret = drmModeAddFB2WithModifiers(drmFd, width, height,
format, handles, strides, offsets,
modifiers, &fb->fbId, flags);

if (ret)
{
std::memset(handles, 0, 16);
Expand Down

0 comments on commit ae3f710

Please sign in to comment.