Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool SetupDisplay(void) {
- GrScreenResolution_t res = GR_RESOLUTION_1024x768;
- unsigned int w, h;
- if (ri.Vid_GetModeInfo(&w, &h, glide_config.mode->value)) {
- switch (h) {
- case 200: res = GR_RESOLUTION_320x200; break;
- case 240: res = GR_RESOLUTION_320x240; break;
- case 300: res = GR_RESOLUTION_400x300; break;
- case 384: res = GR_RESOLUTION_512x384; break;
- case 480: res = GR_RESOLUTION_640x480; break;
- case 600: res = GR_RESOLUTION_800x600; break;
- case 720: res = GR_RESOLUTION_960x720; break;
- case 768: res = GR_RESOLUTION_1024x768; break;
- case 1024: res = GR_RESOLUTION_1280x1024; break;
- case 1200: res = GR_RESOLUTION_1600x1200; break;
- }
- }
- else {
- ri.Con_Printf(PRINT_ALL, "Attempted to set an invalid display mode, %d!\n",
- glide_config.mode->value);
- }
- #if 1
- static GrResolution *res_list = NULL;
- if (res_list != NULL) {
- free(res_list);
- }
- GrResolution query;
- memset(&query, GR_QUERY_ANY, sizeof(GrResolution));
- query.resolution = res;
- query.refresh = GR_REFRESH_60Hz;
- unsigned int size = grQueryResolutions(&query, NULL);
- res_list = malloc(size);
- grQueryResolutions(&query, res_list);
- if (res_list[0].resolution != res) {
- res = GR_RESOLUTION_1024x768;
- ri.Con_Printf(PRINT_ALL, "Display mode %d (%dx%d) is unsupported by this card!\n",
- glide_config.mode->value, w, h);
- }
- #endif
- static GrContext_t context = NULL;
- if (context != NULL) {
- grSstWinClose(context);
- context = NULL;
- }
- if ((context = grSstWinOpen(
- NULL, res,
- GR_REFRESH_60Hz,
- GR_COLORFORMAT_RGBA,
- GR_ORIGIN_UPPER_LEFT,
- 2, 0
- )) == NULL) {
- ri.Con_Printf(PRINT_ALL, "Failed to create window!\n");
- return false;
- }
- return true;
- }
Add Comment
Please, Sign In to add comment