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 |
Implementation of the Windows (GDI) video driver.
Definition in file win32_v.cpp.
static void PaintWindow | ( | HDC | dc | ) | [static] |
Do palette animation and blit to the window.
Definition at line 348 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().
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] |
{ { 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 813 of file win32_v.cpp.