Data Structures | Defines | Functions | Variables

# win32_v.cpp File Reference

Implementation of the Windows (GDI) video driver. More...

`#include "../stdafx.h"`
`#include "../openttd.h"`
`#include "../gfx_func.h"`
`#include "../os/windows/win32.h"`
`#include "../rev.h"`
`#include "../blitter/factory.hpp"`
`#include "../network/network.h"`
`#include "../core/math_func.hpp"`
`#include "../core/random_func.hpp"`
`#include "../texteff.hpp"`
`#include "../thread/thread.h"`
`#include "../progress.h"`
`#include "win32_v.h"`
`#include <windows.h>`

Go to the source code of this file.

## Data Structures
struct | VkMapping
## Defines
#define | AS(x, z) {x, 0, z}
#define | AM(x, y, z, w) {x, y - x, z}
#define | WM_MOUSELEAVE 0x02A3
#define | TID_POLLMOUSE 1
#define | MOUSE_POLL_DELAY 75
#define | WM_MOUSEWHEEL 0x020A
#define | GET_WHEEL_DELTA_WPARAM(wparam) ((short)HIWORD(wparam))
## Functions
static void | MakePalette ()
static void | UpdatePalette (HDC dc, uint start, uint count)
static uint | MapWindowsKey (uint sym)
static bool | AllocateDibSection (int w, int h, bool force=false)
static void | ClientSizeChanged (int w, int h)
static void CALLBACK | TrackMouseTimerProc (HWND hwnd, UINT msg, UINT event, DWORD time)
static void | PaintWindow (HDC dc)
| Do palette animation and blit to the window.
static void | PaintWindowThread (void *)
static LRESULT CALLBACK | WndProcGdi (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
static void | RegisterWndClass ()
static void | FindResolutions ()
static void | CheckPaletteAnim ()
## Variables
struct {
HWND main_wnd
HBITMAP dib_sect
void * buffer_bits
HPALETTE gdi_palette
RECT update_rect
int width
int height
int width_org
int height_org
bool fullscreen
bool has_focus
bool running
} | _wnd
bool | _force_full_redraw
bool | _window_maximize
uint | _display_hz
uint | _fullscreen_bpp
static Dimension | _bck_resolution
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
| Local copy of the palette for use in the drawing thread.
static const VkMapping | _vk_mapping []
static const Dimension | default_resolutions []
static FVideoDriver_Win32 | iFVideoDriver_Win32

## Detailed Description

Implementation of the Windows (GDI) video driver.

Definition in file win32_v.cpp.

## Function Documentation

static void PaintWindow | ( | HDC | dc | ) | `[static]`

Do palette animation and blit to the window.

Definition at line 359 of file win32_v.cpp.

References _cur_palette, Palette::count_dirty, Palette::first_dirty, BlitterFactoryBase::GetCurrentBlitter(), Blitter::PALETTE_ANIMATION_BLITTER, Blitter::PALETTE_ANIMATION_NONE, Blitter::PALETTE_ANIMATION_VIDEO_BACKEND, Blitter::PaletteAnimate(), and Blitter::UsePaletteAnimation().

## Variable Documentation

ThreadMutex* _draw_mutex = NULL`[static]`

Mutex to keep the access to the shared memory controlled.

Definition at line 56 of file win32_v.cpp.

ThreadObject* _draw_thread = NULL`[static]`

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

push data to the screen.

Definition at line 54 of file win32_v.cpp.

bool _draw_threaded`[static]`

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

Definition at line 52 of file win32_v.cpp.

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

Palette _local_palette`[static]`

Local copy of the palette for use in the drawing thread.

Definition at line 60 of file win32_v.cpp.

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 824 of file win32_v.cpp.