OpenTTD
Data Structures | Macros | Functions | Variables
sdl_v.cpp File Reference

Implementation of the SDL video driver. More...

#include "../stdafx.h"
#include "../openttd.h"
#include "../gfx_func.h"
#include "../sdl.h"
#include "../rev.h"
#include "../blitter/factory.hpp"
#include "../network/network.h"
#include "../thread/thread.h"
#include "../progress.h"
#include "../core/random_func.hpp"
#include "../core/math_func.hpp"
#include "../fileio_func.h"
#include "sdl_v.h"
#include <SDL.h>
#include "../safeguards.h"

Go to the source code of this file.

Data Structures

struct  VkMapping

Macros

#define MAX_DIRTY_RECTS   100
#define AS(x, z)   {x, 0, z}
#define AM(x, y, z, w)   {x, (byte)(y - x), z}

Functions

static void UpdatePalette (bool init=false)
static void InitPalette ()
static void CheckPaletteAnim ()
static void DrawSurfaceToScreen ()
static void DrawSurfaceToScreenThread (void *)
static void GetVideoModes ()
static void GetAvailableVideoMode (uint *w, uint *h)
static uint ConvertSdlKeyIntoMy (SDL_keysym *sym, WChar *character)

Variables

static FVideoDriver_SDL iFVideoDriver_SDL
static SDL_Surface * _sdl_screen
static SDL_Surface * _sdl_realscreen
static bool _all_modes
static bool _draw_threaded
 Whether the drawing is/may be done in a separate thread.
static ThreadObject_draw_thread = NULL
 Thread used to 'draw' to the screen, i.e.
static ThreadMutex_draw_mutex = NULL
 Mutex to keep the access to the shared memory controlled.
static volatile bool _draw_continue
 Should we keep continue drawing?
static Palette _local_palette
static SDL_Rect _dirty_rects [MAX_DIRTY_RECTS]
static int _num_dirty_rects
static int _use_hwpalette
static int _requested_hwpalette
static const Dimension _default_resolutions []
static const VkMapping _vk_mapping []

Detailed Description

Implementation of the SDL video driver.

Definition in file sdl_v.cpp.

Variable Documentation

const Dimension _default_resolutions[]
static
Initial value:
{
{ 640, 480},
{ 800, 600},
{1024, 768},
{1152, 864},
{1280, 800},
{1280, 960},
{1280, 1024},
{1400, 1050},
{1600, 1200},
{1680, 1050},
{1920, 1200}
}

Definition at line 190 of file sdl_v.cpp.

ThreadMutex* _draw_mutex = NULL
static

Mutex to keep the access to the shared memory controlled.

Definition at line 42 of file sdl_v.cpp.

Referenced by VideoDriver_SDL::MainLoop().

ThreadObject* _draw_thread = NULL
static

Thread used to 'draw' to the screen, i.e.

push data to the screen.

Definition at line 40 of file sdl_v.cpp.

Referenced by VideoDriver_SDL::MainLoop().

bool _draw_threaded
static

Whether the drawing is/may be done in a separate thread.

Definition at line 38 of file sdl_v.cpp.

Referenced by VideoDriver_SDL::MainLoop(), and VideoDriver_SDL::Start().