cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

sdl2.h (2780B)


      1#ifndef SDL2_H
      2#define SDL2_H
      3
      4/* Avoid compiler warning because macro is redefined in SDL_syswm.h. */
      5#undef WIN32_LEAN_AND_MEAN
      6
      7#include <SDL.h>
      8#include <SDL_syswm.h>
      9#ifdef CONFIG_SDL_IMAGE
     10# include <SDL_image.h>
     11#endif
     12
     13#include "ui/kbd-state.h"
     14#ifdef CONFIG_OPENGL
     15# include "ui/egl-helpers.h"
     16#endif
     17
     18struct sdl2_console {
     19    DisplayChangeListener dcl;
     20    DisplaySurface *surface;
     21    DisplayOptions *opts;
     22    SDL_Texture *texture;
     23    SDL_Window *real_window;
     24    SDL_Renderer *real_renderer;
     25    int idx;
     26    int last_vm_running; /* per console for caption reasons */
     27    int x, y, w, h;
     28    int hidden;
     29    int opengl;
     30    int updates;
     31    int idle_counter;
     32    int ignore_hotkeys;
     33    SDL_GLContext winctx;
     34    QKbdState *kbd;
     35#ifdef CONFIG_OPENGL
     36    QemuGLShader *gls;
     37    egl_fb guest_fb;
     38    egl_fb win_fb;
     39    bool y0_top;
     40    bool scanout_mode;
     41#endif
     42};
     43
     44void sdl2_window_create(struct sdl2_console *scon);
     45void sdl2_window_destroy(struct sdl2_console *scon);
     46void sdl2_window_resize(struct sdl2_console *scon);
     47void sdl2_poll_events(struct sdl2_console *scon);
     48
     49void sdl2_process_key(struct sdl2_console *scon,
     50                      SDL_KeyboardEvent *ev);
     51
     52void sdl2_2d_update(DisplayChangeListener *dcl,
     53                    int x, int y, int w, int h);
     54void sdl2_2d_switch(DisplayChangeListener *dcl,
     55                    DisplaySurface *new_surface);
     56void sdl2_2d_refresh(DisplayChangeListener *dcl);
     57void sdl2_2d_redraw(struct sdl2_console *scon);
     58bool sdl2_2d_check_format(DisplayChangeListener *dcl,
     59                          pixman_format_code_t format);
     60
     61void sdl2_gl_update(DisplayChangeListener *dcl,
     62                    int x, int y, int w, int h);
     63void sdl2_gl_switch(DisplayChangeListener *dcl,
     64                    DisplaySurface *new_surface);
     65void sdl2_gl_refresh(DisplayChangeListener *dcl);
     66void sdl2_gl_redraw(struct sdl2_console *scon);
     67
     68QEMUGLContext sdl2_gl_create_context(DisplayChangeListener *dcl,
     69                                     QEMUGLParams *params);
     70void sdl2_gl_destroy_context(DisplayChangeListener *dcl, QEMUGLContext ctx);
     71int sdl2_gl_make_context_current(DisplayChangeListener *dcl,
     72                                 QEMUGLContext ctx);
     73
     74void sdl2_gl_scanout_disable(DisplayChangeListener *dcl);
     75void sdl2_gl_scanout_texture(DisplayChangeListener *dcl,
     76                             uint32_t backing_id,
     77                             bool backing_y_0_top,
     78                             uint32_t backing_width,
     79                             uint32_t backing_height,
     80                             uint32_t x, uint32_t y,
     81                             uint32_t w, uint32_t h);
     82void sdl2_gl_scanout_flush(DisplayChangeListener *dcl,
     83                           uint32_t x, uint32_t y, uint32_t w, uint32_t h);
     84
     85#endif /* SDL2_H */