Skip to content

Commit fdf9a61

Browse files
faxe1008kartben
authored andcommitted
drivers: display: sdl: Store dev inside of window user_data
Adds storing of the zephyr display device struct inside of the windows user_data, so it can be used inside of the SDL touch driver context for checking the origin window of a received event. Signed-off-by: Fabian Blatz <[email protected]>
1 parent 1847b88 commit fdf9a61

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

drivers/display/display_sdl.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,10 @@ static int sdl_display_init(const struct device *dev)
8181
}
8282

8383
int rc = sdl_display_init_bottom(config->height, config->width, sdl_display_zoom_pct,
84-
use_accelerator, &disp_data->window, &disp_data->renderer,
85-
&disp_data->mutex, &disp_data->texture,
86-
&disp_data->read_texture, &disp_data->background_texture,
84+
use_accelerator, &disp_data->window, dev,
85+
&disp_data->renderer, &disp_data->mutex,
86+
&disp_data->texture, &disp_data->read_texture,
87+
&disp_data->background_texture,
8788
CONFIG_SDL_DISPLAY_TRANSPARENCY_GRID_CELL_COLOR_1,
8889
CONFIG_SDL_DISPLAY_TRANSPARENCY_GRID_CELL_COLOR_2,
8990
CONFIG_SDL_DISPLAY_TRANSPARENCY_GRID_CELL_SIZE);

drivers/display/display_sdl_bottom.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
#include "nsi_tracing.h"
1515

1616
int sdl_display_init_bottom(uint16_t height, uint16_t width, uint16_t zoom_pct,
17-
bool use_accelerator, void **window, void **renderer, void **mutex,
18-
void **texture, void **read_texture, void **background_texture,
19-
uint32_t transparency_grid_color1, uint32_t transparency_grid_color2,
20-
uint16_t transparency_grid_cell_size)
17+
bool use_accelerator, void **window, const void *window_user_data,
18+
void **renderer, void **mutex, void **texture, void **read_texture,
19+
void **background_texture, uint32_t transparency_grid_color1,
20+
uint32_t transparency_grid_color2, uint16_t transparency_grid_cell_size)
2121
{
2222
*window = SDL_CreateWindow("Zephyr Display", SDL_WINDOWPOS_UNDEFINED,
2323
SDL_WINDOWPOS_UNDEFINED, width * zoom_pct / 100,
@@ -26,6 +26,7 @@ int sdl_display_init_bottom(uint16_t height, uint16_t width, uint16_t zoom_pct,
2626
nsi_print_warning("Failed to create SDL window: %s", SDL_GetError());
2727
return -1;
2828
}
29+
SDL_SetWindowData(*window, "zephyr_display", (void *)window_user_data);
2930

3031
if (use_accelerator) {
3132
*renderer = SDL_CreateRenderer(*window, -1, SDL_RENDERER_ACCELERATED);

drivers/display/display_sdl_bottom.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ extern "C" {
2121
/* Note: None of these functions are public interfaces. But internal to the SDL display driver */
2222

2323
int sdl_display_init_bottom(uint16_t height, uint16_t width, uint16_t zoom_pct,
24-
bool use_accelerator, void **window, void **renderer, void **mutex,
25-
void **texture, void **read_texture, void **background_texture,
26-
uint32_t transparency_grid_color1, uint32_t transparency_grid_color2,
24+
bool use_accelerator, void **window, const void *window_user_data,
25+
void **renderer, void **mutex, void **texture, void **read_texture,
26+
void **background_texture, uint32_t transparency_grid_color1,
27+
uint32_t transparency_grid_color2,
2728
uint16_t transparency_grid_cell_size);
2829
void sdl_display_write_bottom(const uint16_t height, const uint16_t width, const uint16_t x,
2930
const uint16_t y, void *renderer, void *mutex, void *texture,

0 commit comments

Comments
 (0)