View | Details | Raw Unified
Collapse All | Expand All

(-) /trunk/lib/ivis_opengl/screen.c (-17 / +36 lines)
 Lines 131-137    Link Here 
	/* Store the screen information */
	/* Store the screen information */
	screenWidth = width;
	screenWidth = width;
	screenHeight = height;
	screenHeight = height;
	screenDepth = 24;
	screenDepth = 32;
	/* store vidmem flag */
	/* store vidmem flag */
	g_bVidMem = bVidMem;
	g_bVidMem = bVidMem;
 Lines 168-181    Link Here 
				video_flags |= SDL_HWACCEL;
				video_flags |= SDL_HWACCEL;
			}
			}
			SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );
			bpp = SDL_VideoModeOK(width, height, screenDepth, video_flags);
			SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );
			if (!bpp) {
			SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );
				debug( LOG_ERROR, "Error: Video mode %dx%d@%dbpp is not supported!\n", width, height, screenDepth );
			SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
				return FALSE;
			SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
			}
			SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
			switch ( bpp )
			{
				case 32:
				case 24:
					SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 8 );
					SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 8 );
					SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 8 );
					SDL_GL_SetAttribute( SDL_GL_ALPHA_SIZE, 8 );
					SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
					SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
					break;
				case 16:
					debug( LOG_ERROR, "Warning: Using colour depth of %i instead of %i.", bpp, screenDepth );
					debug( LOG_ERROR, "         You will experience graphics glitches!" );
					SDL_GL_SetAttribute( SDL_GL_RED_SIZE, 5 );
					SDL_GL_SetAttribute( SDL_GL_GREEN_SIZE, 6 );
					SDL_GL_SetAttribute( SDL_GL_BLUE_SIZE, 5 );
					SDL_GL_SetAttribute( SDL_GL_DEPTH_SIZE, 16 );
					SDL_GL_SetAttribute( SDL_GL_STENCIL_SIZE, 8 );
					break;
				case 8:
					debug( LOG_ERROR, "Error: You don't want to play Warzone with a bit depth of %i, do you?", bpp );
					exit( 1 );
					break;
				default:
					debug( LOG_ERROR, "Error: Weird bit depth: %i", bpp );
					exit( 1 );
					break;
			}
    			// Set the double buffer OpenGL attribute.
			// Set the double buffer OpenGL attribute.
			SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
			SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
		}
		}
 Lines 186-200    Link Here 
			screenMode = SCREEN_WINDOWED;
			screenMode = SCREEN_WINDOWED;
		}
		}
		bpp = SDL_VideoModeOK(width, height, screenDepth, video_flags);
		if (!bpp) {
			printf("Error: Video mode %dx%d@%dbpp is not supported!\n", width, height, screenDepth);
			return FALSE;
		}
		if (bpp != screenDepth) {
			debug(LOG_3D, "Warning: Using colour depth of %d instead of %d.",
            bpp, screenDepth);
		}
		screen = SDL_SetVideoMode(width, height, bpp, video_flags);
		screen = SDL_SetVideoMode(width, height, bpp, video_flags);
		if (!screen) {
		if (!screen) {
			printf("Error: SDL_SetVideoMode failed (%s).\n", SDL_GetError());
			printf("Error: SDL_SetVideoMode failed (%s).\n", SDL_GetError());