void editorLoad(const char* fn, SDL_Surface* screen) { //Set filename editorFileName(fn); //Init cursor initCursor(&cur); //Read info's for level. pf.levelInfo = mkLevelInfo( fn ); //Load field loadField(&pf, fileName); initDraw(pf.levelInfo, screen); SDL_FreeSurface(stealGfxPtr()->boardImg); stealGfxPtr()->boardImg = loadImg( DATADIR"data/editbg.png" ); selBrickBG = loadImg( DATADIR"data/editselbrick.png" ); saveBtnBG = loadImg( DATADIR"data/edit-save.png" ); saveBtnSprite = cutSprite( saveBtnBG, 0,0, saveBtnBG->w, saveBtnBG->h ); changed=0; selBrick=BRICKSBEGIN; teleState=0; fieldRect.x = HSCREENW - 74; fieldRect.y = HSCREENH - 114; fieldRect.w = HSCREENW + 154; fieldRect.h = HSCREENH + 114; }
/******************************************************************** * Default Constructor * Initializes the grid spaces. ********************************************************************/ Grid :: Grid() { // Set up my precious defaults. clearGrid(); curRow = 0; curCol = 0; initDraw(); }
void Pass::draw() { initDraw(); if (useDefaultWVP) { XMFLOAT4X4 view = camera->getViewMatrix(); XMMATRIX camView = XMLoadFloat4x4(&view); XMMATRIX camProjection = XMMatrixPerspectiveFovLH(0.4f * 3.14f, (float)width / height, 1.0f, 1000.0f); XMMATRIX w = XMLoadFloat4x4(&world); XMMATRIX WVP = XMMatrixTranspose(w * camView * camProjection); cbPerObject cbPerObj; cbPerObj.WVP = WVP; cbPerObj.normalTransform = w; cbPerObj.eyePosition = camera->position; Constant *wvp = new Constant(&cbPerObj, sizeof(cbPerObj), 0); wvp->setConstantForVS(device, context); } else { XMMATRIX w = XMLoadFloat4x4(&world); XMMATRIX WVP = XMMatrixTranspose(w); MatrixBuffer buffer; buffer.matrix = WVP; Constant *wvp = new Constant(&buffer, sizeof(buffer), 0); wvp->setConstantForVS(device, context); } model->draw(device, context, vertexShader->buffer); }
status ws_init_graphics_display(DisplayObj d) { initDraw(); init_area_enter_exit_handling(d); succeed; }
void XListBox::localUpdate(XRectF& pRect,XObject *pObject) { if(pObject == this ) return ; if(widget_state == X_ORIGINAL) initDraw(); else draw(); }
void Viewer::draw() { if(!m_displayListCreated) initDraw(); if ( !wireframe ) { if(flatShading) ::glCallList(m_dlFacesFlat); else ::glCallList(m_dlFaces); } if(edges) ::glCallList(m_dlEdges); if(vertices) ::glCallList(m_dlVertices); }
int initGame(SDL_Surface* screen) { if(player()->gameStarted) { printf("ERROR: Called init when a game was running\n"); return(0); } //Only load the back-image once. if( !ptrRestart ) { ptrRestart = loadImg( DATADIR"data/ptr-restart.png" ); ptrRestartRect.x=HSCREENW-160; ptrRestartRect.w=ptrRestartRect.x+ptrRestart->w; ptrRestartRect.y=HSCREENH+120-ptrRestart->h; ptrRestartRect.h=ptrRestartRect.y+ptrRestart->h; } debugNumInit++; initCursor(&cur); restartConfirm=0; //Read info's for level. (this is done instead of using the one in packInfo so it don't need resetting) pf.levelInfo = mkLevelInfo( player()->levelFile ); if(!loadField(&pf, player()->levelFile )) { printf("Error: Couldn't init playfield.\n"); return(0); } if(!initDraw(pf.levelInfo,screen)) { printf("Error: Couldn't init graphics.\n"); return(0); } char* buf = malloc(sizeof(char)*128); sprintf(buf, "themes/%s",pf.levelInfo->soundDir); loadSamples( buf, levelInfo( player()->level)->musicFile ); //Load samples from sounddir, note we use the levelInfo from packInfo for the music since the playlist is hacked onto that. free(buf); txtLoadGameCharSet( pf.levelInfo->fontName ); pf.levelInfo->time *= 1000; //Convert seconds to ms countdown=500; countdownSeconds=3; gameState=GAMESTATECOUNTDOWN; player()->gameStarted=1; //Clear player stats memset( &player()->hsEntry, 0, sizeof( hsEntry_t ) ); //Set the levelNum player()->hsEntry.levelNum = player()->level; startStopImg=0; if(pf.levelInfo->startImg) { gameState=GAMESTATESTARTIMAGE; } //We also simulate the first switch tick here so all looks right at the countdown. switchUpdateAll( &pf ); justWon=0; return(1); }
int main(void) { WNDCLASSW wc; HWND mainwin; MSG msg; CoInitialize(NULL); initDraw(); hInstance = GetModuleHandle(NULL); h.ah.Draw = handlerDraw; h.ah.HScrollMax = handlerHScrollMax; h.ah.VScrollMax = handlerVScrollMax; h.ah.RedrawOnResize = handlerRedrawOnResize; h.ah.MouseEvent = handlerMouseEvent; h.ah.DragBroken = handlerDragBroken; h.ah.KeyEvent = handlerKeyEvent; registerAreaClass(); ZeroMemory(&wc, sizeof (WNDCLASSW)); wc.lpszClassName = L"mainwin"; wc.lpfnWndProc = wndproc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH) (COLOR_BTNFACE + 1); RegisterClassW(&wc); mainwin = CreateWindowExW(0, L"mainwin", L"mainwin", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); area = makeArea(0, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, mainwin, (uiAreaHandler *) (&h)); nhspinb = CreateWindowExW(WS_EX_CLIENTEDGE, L"edit", L"0", ES_NUMBER | WS_CHILD | WS_VISIBLE, 0, 0, 100, 100, mainwin, NULL, hInstance, NULL); nvspinb = CreateWindowExW(WS_EX_CLIENTEDGE, L"edit", L"0", ES_NUMBER | WS_CHILD | WS_VISIBLE, 0, 0, 100, 100, mainwin, NULL, hInstance, NULL); // initial state repos(mainwin); areaUpdateScroll(area); ShowWindow(mainwin, SW_SHOWDEFAULT); UpdateWindow(mainwin); extern BOOL processAreaMessage(MSG *); while (GetMessage(&msg, NULL, 0, 0)) { if (processAreaMessage(&msg)) continue; TranslateMessage(&msg); DispatchMessage(&msg); } uninitDraw(); CoUninitialize(); return 0; }
const char *uiInit(uiInitOptions *o) { STARTUPINFOW si; const char *ce; HICON hDefaultIcon; HCURSOR hDefaultCursor; NONCLIENTMETRICSW ncm; INITCOMMONCONTROLSEX icc; HRESULT hr; options = *o; initAlloc(); nCmdShow = SW_SHOWDEFAULT; GetStartupInfoW(&si); if ((si.dwFlags & STARTF_USESHOWWINDOW) != 0) nCmdShow = si.wShowWindow; hDefaultIcon = LoadIconW(NULL, IDI_APPLICATION); if (hDefaultIcon == NULL) return ieLastErr("loading default icon for window classes"); hDefaultCursor = LoadCursorW(NULL, IDC_ARROW); if (hDefaultCursor == NULL) return ieLastErr("loading default cursor for window classes"); ce = initUtilWindow(hDefaultIcon, hDefaultCursor); if (ce != NULL) return ieLastErr("TODO use ce here"); if (registerWindowClass(hDefaultIcon, hDefaultCursor) == 0) return ieLastErr("registering uiWindow window class"); ZeroMemory(&ncm, sizeof (NONCLIENTMETRICSW)); ncm.cbSize = sizeof (NONCLIENTMETRICSW); if (SystemParametersInfoW(SPI_GETNONCLIENTMETRICS, sizeof (NONCLIENTMETRICSW), &ncm, sizeof (NONCLIENTMETRICSW)) == 0) return ieLastErr("getting default fonts"); hMessageFont = CreateFontIndirectW(&(ncm.lfMessageFont)); if (hMessageFont == NULL) return ieLastErr("loading default messagebox font; this is the default UI font"); // TODO rewrite this error message if (initContainer(hDefaultIcon, hDefaultCursor) == 0) return ieLastErr("initializing uiMakeContainer() window class"); hollowBrush = (HBRUSH) GetStockObject(HOLLOW_BRUSH); if (hollowBrush == NULL) return ieLastErr("getting hollow brush"); ZeroMemory(&icc, sizeof (INITCOMMONCONTROLSEX)); icc.dwSize = sizeof (INITCOMMONCONTROLSEX); icc.dwICC = wantedICCClasses; if (InitCommonControlsEx(&icc) == 0) return ieLastErr("initializing Common Controls"); hr = CoInitialize(NULL); if (hr != S_OK && hr != S_FALSE) return ieHRESULT("initializing COM", hr); // TODO initialize COM security // TODO (windows vista) turn off COM exception handling hr = initDraw(); if (hr != S_OK) return ieHRESULT("initializing Direct2D", hr); hr = initDrawText(); if (hr != S_OK) return ieHRESULT("initializing DirectWrite", hr); if (registerAreaClass(hDefaultIcon, hDefaultCursor) == 0) return ieLastErr("registering uiArea window class"); if (registerMessageFilter() == 0) return ieLastErr("registering libui message filter"); if (registerD2DScratchClass(hDefaultIcon, hDefaultCursor) == 0) return ieLastErr("initializing D2D scratch window class"); return NULL; }