Skip to content

Commit

Permalink
fix dead window
Browse files Browse the repository at this point in the history
  • Loading branch information
ManojTGN committed Apr 3, 2023
1 parent 43c7851 commit 07f6f4a
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 28 deletions.
11 changes: 1 addition & 10 deletions src/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,12 @@ LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){
WINDOWS[id]->_eventLength++;
}

switch (uMsg){
case WM_DESTROY:
{
WINDOWS[id]->isDead = 1;
PostQuitMessage(0);
return 0;
}
}

return DefWindowProc(hwnd, uMsg, wParam, lParam);

}

void manageGrafixEvent(grafixWindow window, grafixEvent** event, int* size){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

WINDOWS[window.id]->_eventLength = 0;

Expand Down
28 changes: 19 additions & 9 deletions src/grafix.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ const char* getGrafixError(){
}

void setGrafixError(char* errorMsg){

strcpy(grafixError,errorMsg);

}

void clearGrafixError(){
Expand All @@ -41,21 +43,21 @@ void clearGrafixError(){


void showGrafixWindow(grafixWindow window){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

ShowWindow(window._hwnd, SW_SHOWDEFAULT);

}

void hideGrafixWindow(grafixWindow window){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

ShowWindow(window._hwnd, SW_HIDE);

}

void fillGrafixWindow(grafixWindow window, grafixColor color){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

for(int i = 0; i < window.height * window.width * 3; i+=3){
BUFFERS[window.id].frameBuffer[i] = color.green;
Expand All @@ -67,7 +69,7 @@ void fillGrafixWindow(grafixWindow window, grafixColor color){


void updateGrafixWindow(grafixWindow window){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

BITMAPINFO bmi = { 0 };
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
Expand Down Expand Up @@ -163,20 +165,28 @@ int createGrafixWindow(grafixWindow* window, int WIDTH, int HEIGHT, char* NAME){

int isGrafixWindowEnded(grafixWindow window){

return window.isDead;
return (WINDOWS[window.id] == NULL || window.isDead);

}

void endGrafixWindow(grafixWindow window){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL || window.isDead ) return;

ReleaseDC(window._hwnd, window._hdc);
ReleaseDC(window._hwnd, window._hdc);
free(BUFFERS[window.id].frameBuffer);

DestroyWindow(window._hwnd);
free(WINDOWS[window.id]);

WINDOWS[window.id] = NULL;

window.isDead = 1;
window.height = -1;
window.width = -1;
window._eventLength = -1;
window._hdc = NULL;
window._hwnd = NULL;
window._cname = NULL;

PostQuitMessage(0);
}

grafixWindow* getGrafixWindow(int id){
Expand Down
2 changes: 2 additions & 0 deletions src/image.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ int createGrafixImage(grafixImage *image, const char* filePath, int fileType){

void drawGrafixImage(grafixWindow window, grafixImage image, int x, int y){

if(WINDOWS[window.id] == NULL|| window.isDead) return;

if(image._isInit != 1){
setGrafixError("grafixError:Unable To Draw Image;Reason:Image Is Not Initiated;");
return;
Expand Down
11 changes: 5 additions & 6 deletions src/shapes.c
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "shapes.h"

void _setPixel(grafixWindow window, int x, int y, grafixColor color){
if(window.isDead || x >= window.width || y >= window.height || x < 0 || y < 0) return;
if(WINDOWS[window.id] == NULL|| window.isDead || x >= window.width || y >= window.height || x < 0 || y < 0) return;

int index = (x + y * window.width) * 3;
BUFFERS[window.id].frameBuffer[index] = color.blue;
Expand All @@ -11,7 +11,7 @@ void _setPixel(grafixWindow window, int x, int y, grafixColor color){
}

void drawGrafixLine(grafixWindow window, int x0, int y0, int x1, int y1, grafixColor color){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

int dx = abs(x1 - x0);
int dy = abs(y1 - y0);
Expand All @@ -37,7 +37,7 @@ void drawGrafixLine(grafixWindow window, int x0, int y0, int x1, int y1, grafixC
}

void drawGrafixRect(grafixWindow window, int x, int y, int width, int height, grafixColor color, int fillMode, int owidth){
if( window.isDead || fillMode == FM_EMPTY) return;
if( WINDOWS[window.id] == NULL|| window.isDead || fillMode == FM_EMPTY) return;

if(x >= window.width || y >= window.height || x < 0 || y < 0) return;

Expand Down Expand Up @@ -66,7 +66,7 @@ void drawGrafixRect(grafixWindow window, int x, int y, int width, int height, gr
}

void drawGrafixCircle(grafixWindow window, int xc, int yc, int r, grafixColor color, int fillMode, int owidth){
if( window.isDead || fillMode == FM_EMPTY) return;
if( WINDOWS[window.id] == NULL|| window.isDead || fillMode == FM_EMPTY) return;

int x = 0;
int y = r;
Expand Down Expand Up @@ -125,14 +125,13 @@ void drawGrafixCircle(grafixWindow window, int xc, int yc, int r, grafixColor co
}
}


return;
}

}

void drawGrafixText(grafixWindow window, int x, int y, char* text, int fontSize, grafixColor color){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

HDC hdc = CreateCompatibleDC(NULL);

Expand Down
6 changes: 3 additions & 3 deletions src/time.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ void dev_DEBUG_TIME(grafixWindow window){
}

int getGrafixFPS(grafixWindow window){
if( window.isDead ) return -1;
if( WINDOWS[window.id] == NULL|| window.isDead ) return -1;

return TIMES[window.id]._tps;

}

void tickGrafix(grafixWindow window, int tick){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

if(TIMES[window.id]._limitTps != tick){
TIMES[window.id]._limitTps = tick;
Expand All @@ -35,7 +35,7 @@ void tickGrafix(grafixWindow window, int tick){
}

void updateGrafixTime(grafixWindow window){
if( window.isDead ) return;
if( WINDOWS[window.id] == NULL|| window.isDead ) return;

TIMES[window.id]._endCounter = clock();
TIMES[window.id]._msPerFrame = TIMES[window.id]._endCounter - TIMES[window.id]._startCounter;
Expand Down

0 comments on commit 07f6f4a

Please sign in to comment.