mirror of https://github.com/encounter/SDL.git
Fix software rendering in the mir backend. The window assumed hardware buffer, which caused testdrawchessboard to fail to mmap a buffer.
This commit is contained in:
parent
ec5f6ad595
commit
44a0f1d9cd
|
@ -56,6 +56,8 @@ MIR_CreateWindowFramebuffer(_THIS, SDL_Window* window, Uint32* format,
|
||||||
MIR_Window* mir_window;
|
MIR_Window* mir_window;
|
||||||
MirSurfaceParameters surfaceparm;
|
MirSurfaceParameters surfaceparm;
|
||||||
|
|
||||||
|
mir_data->software = SDL_TRUE;
|
||||||
|
|
||||||
if (MIR_CreateWindow(_this, window) < 0)
|
if (MIR_CreateWindow(_this, window) < 0)
|
||||||
return SDL_SetError("Failed to created a mir window.");
|
return SDL_SetError("Failed to created a mir window.");
|
||||||
|
|
||||||
|
|
|
@ -273,6 +273,7 @@ MIR_VideoInit(_THIS)
|
||||||
MIR_Data* mir_data = _this->driverdata;
|
MIR_Data* mir_data = _this->driverdata;
|
||||||
|
|
||||||
mir_data->connection = MIR_mir_connect_sync(NULL, __PRETTY_FUNCTION__);
|
mir_data->connection = MIR_mir_connect_sync(NULL, __PRETTY_FUNCTION__);
|
||||||
|
mir_data->software = SDL_FALSE;
|
||||||
|
|
||||||
if (!MIR_mir_connection_is_valid(mir_data->connection))
|
if (!MIR_mir_connection_is_valid(mir_data->connection))
|
||||||
return SDL_SetError("Failed to connect to the Mir Server");
|
return SDL_SetError("Failed to connect to the Mir Server");
|
||||||
|
|
|
@ -32,6 +32,8 @@
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
MirConnection* connection;
|
MirConnection* connection;
|
||||||
|
SDL_bool software;
|
||||||
|
|
||||||
} MIR_Data;
|
} MIR_Data;
|
||||||
|
|
||||||
#endif /* _SDL_mirvideo_h_ */
|
#endif /* _SDL_mirvideo_h_ */
|
||||||
|
|
|
@ -99,6 +99,9 @@ MIR_CreateWindow(_THIS, SDL_Window* window)
|
||||||
mir_data = _this->driverdata;
|
mir_data = _this->driverdata;
|
||||||
window->driverdata = mir_window;
|
window->driverdata = mir_window;
|
||||||
|
|
||||||
|
if (mir_data->software)
|
||||||
|
surfaceparm.buffer_usage = mir_buffer_usage_software;
|
||||||
|
|
||||||
if (window->x == SDL_WINDOWPOS_UNDEFINED)
|
if (window->x == SDL_WINDOWPOS_UNDEFINED)
|
||||||
window->x = 0;
|
window->x = 0;
|
||||||
|
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
SDL_Window* sdl_window;
|
SDL_Window* sdl_window;
|
||||||
MIR_Data* mir_data;
|
MIR_Data* mir_data;
|
||||||
|
bool software;
|
||||||
|
|
||||||
MirSurface* surface;
|
MirSurface* surface;
|
||||||
EGLSurface egl_surface;
|
EGLSurface egl_surface;
|
||||||
|
|
Loading…
Reference in New Issue