ShaderProgram::ShaderProgram(char* vertexShaderFile, char* fragmentShaderFile) { char* vertexShaderCode = ReadFile(vertexShaderFile); char* fragmentShaderCode = ReadFile(fragmentShaderFile); std::cout << vertexShaderCode << std::endl; std::cout << fragmentShaderCode << std::endl; if ((vertexShaderCode == NULL) || (fragmentShaderCode == NULL)) { return; } uint32_t vertexShader = glCreateShader(GL_VERTEX_SHADER); glShaderSource(vertexShader, 1, &vertexShaderCode, NULL); glCompileShader(vertexShader); CheckShaderErrors(vertexShader); uint32_t fragmentShader = glCreateShader(GL_FRAGMENT_SHADER); glShaderSource(fragmentShader, 1, &fragmentShaderCode, NULL); glCompileShader(fragmentShader); CheckShaderErrors(fragmentShader); uint32_t program = glCreateProgram(); glAttachShader(program, vertexShader); glAttachShader(program, fragmentShader); glLinkProgram(program); bool error = CheckProgramErrors(program); glDeleteShader(vertexShader); glDeleteShader(fragmentShader); if (!error) this->program = program; }
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { MSG msg; HACCEL hAccelTable; int BPQStream, n; struct _EXCEPTION_POINTERS exinfo; _invalid_parameter_handler oldHandler, newHandler; char Msg[100]; int i = 60; char * ptr; int nCodePage = GetACP(); if (strstr(lpCmdLine, "WAIT")) // If AutoRestart then Delay 60 Secs { hWnd = CreateWindow("STATIC", "Chat Restarting after Failure - Please Wait", 0, CW_USEDEFAULT, 100, 550, 70, NULL, NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); while (i-- > 0) { wsprintf(Msg, "Chat Restarting after Failure - Please Wait %d secs.", i); SetWindowText(hWnd, Msg); Sleep(1000); } DestroyWindow(hWnd); } ptr = strstr(_strupr(lpCmdLine), "SERVER"); if (ptr) strcpy(Session, ptr); _strlwr(&Session[1]); strcpy(BPQDirectory, GetBPQDirectory()); __try { // Trap CRT Errors newHandler = myInvalidParameterHandler; oldHandler = _set_invalid_parameter_handler(newHandler); // Initialize global strings LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); LoadString(hInstance, IDC_BPQMailChat, szWindowClass, MAX_LOADSTRING); MyRegisterClass(hInstance); // Perform application initialization: if (!InitInstance (hInstance, nCmdShow)) { return FALSE; } hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_BPQMailChat)); // Main message loop: Logprintf(LOG_CHAT, NULL, '!', "Program Starting"); } My__except_Routine("Init"); while (GetMessage(&msg, NULL, 0, 0)) { __try { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } #define EXCEPTMSG "GetMessageLoop" #include "StdExcept.c" CheckProgramErrors(); } }