129 lines
2.6 KiB
C++
129 lines
2.6 KiB
C++
// ************************************************************************************************
|
|
//
|
|
// Direct X TEST.
|
|
//
|
|
// ************************************** (c) Pedro Díez López ************************************
|
|
|
|
#include "DXVideo.h"
|
|
|
|
#define ID_NOMBRE "Test"
|
|
#define ID_TITULO "Test"
|
|
#define ID_TEMP 1
|
|
|
|
CDXVideo *DXVideo;
|
|
BOOL Par;
|
|
int Temporizador;
|
|
BOOL AppActiva;
|
|
|
|
//
|
|
// El TEST
|
|
//
|
|
void Test ()
|
|
{
|
|
if(Par==TRUE)
|
|
{
|
|
memset(DXVideo->pBuffer.bpp,064,DXVideo->DimBuffer);
|
|
Par = FALSE;
|
|
}
|
|
else
|
|
{
|
|
memset(DXVideo->pBuffer.bpp,128,DXVideo->DimBuffer);
|
|
Par = TRUE;
|
|
}
|
|
}
|
|
|
|
//
|
|
//
|
|
// W i n d o w P r o c
|
|
//
|
|
//
|
|
long FAR PASCAL WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|
{
|
|
switch( message )
|
|
{
|
|
case WM_ACTIVATEAPP:
|
|
AppActiva = (wParam == WA_ACTIVE) || (wParam == WA_CLICKACTIVE);
|
|
break;
|
|
|
|
case WM_CREATE:
|
|
break;
|
|
|
|
case WM_SETCURSOR:
|
|
SetCursor(DXVideo->mDDCursorShape);
|
|
return TRUE;
|
|
|
|
case WM_TIMER:
|
|
if (AppActiva && ID_TEMP == wParam)
|
|
{
|
|
Test();
|
|
DXVideo->Pinta();
|
|
}
|
|
break;
|
|
|
|
case WM_KEYDOWN:
|
|
switch( wParam )
|
|
{
|
|
case VK_ESCAPE:
|
|
PostMessage(hWnd, WM_CLOSE, 0, 0);
|
|
break;
|
|
}
|
|
break;
|
|
|
|
case WM_PAINT:
|
|
break;
|
|
|
|
case WM_DESTROY:
|
|
DXVideo->Fin();
|
|
delete DXVideo;
|
|
PostQuitMessage(0);
|
|
break;
|
|
}
|
|
return DefWindowProc(hWnd, message, wParam, lParam);
|
|
}
|
|
|
|
//
|
|
//
|
|
// W i n M a i n
|
|
//
|
|
//
|
|
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
|
|
{
|
|
WNDCLASS wc;
|
|
HWND hwnd;
|
|
MSG msg;
|
|
|
|
wc.style = CS_HREDRAW | CS_VREDRAW;
|
|
wc.lpfnWndProc = WindowProc;
|
|
wc.cbClsExtra = 0;
|
|
wc.cbWndExtra = 0;
|
|
wc.hInstance = hInstance;
|
|
wc.hIcon = LoadIcon(hInstance, IDI_APPLICATION);
|
|
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
|
|
wc.hbrBackground = NULL;
|
|
wc.lpszMenuName = ID_NOMBRE;
|
|
wc.lpszClassName = ID_NOMBRE;
|
|
RegisterClass(&wc);
|
|
|
|
hwnd = CreateWindowEx(WS_EX_TOPMOST,ID_NOMBRE,ID_TITULO,WS_POPUP,0,0,
|
|
GetSystemMetrics(SM_CXSCREEN),GetSystemMetrics(SM_CYSCREEN),
|
|
NULL, NULL, hInstance, NULL);
|
|
if (!hwnd) return FALSE;
|
|
ShowWindow(hwnd, nCmdShow);
|
|
UpdateWindow(hwnd);
|
|
|
|
Temporizador = 100;
|
|
if(!SetTimer(hwnd,ID_TEMP,Temporizador,NULL)) return FALSE;
|
|
|
|
DXVideo = new CDXVideo;
|
|
DXVideo->Inicio (hwnd,640,480,16);
|
|
DXVideo->Cursor(NULL);
|
|
|
|
while (GetMessage(&msg, NULL, 0, 0))
|
|
{
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
|
|
return msg.wParam;
|
|
}
|