static unsigned gfx_ctx_get_resolution_height(unsigned resolution_id) { CellVideoOutResolution resolution; cellVideoOutGetResolution(resolution_id, &resolution); return resolution.height; }
static unsigned gfx_ctx_get_resolution_width(unsigned resolution_id) { CellVideoOutResolution resolution; cellVideoOutGetResolution(resolution_id, &resolution); return resolution.width; }
static void gfx_ctx_ps3_get_resolution(unsigned idx, unsigned *width, unsigned *height) { CellVideoOutResolution resolution; cellVideoOutGetResolution(idx, &resolution); *width = resolution.width; *height = resolution.height; }
void PS3Graphics::PSGLInitDevice(uint32_t resolutionId, uint16_t pal60Hz/*, uint16_t tripleBuffering*/) { PSGLdeviceParameters params; PSGLinitOptions options; options.enable = PSGL_INIT_MAX_SPUS | PSGL_INIT_INITIALIZE_SPUS; #if CELL_SDK_VERSION == 0x340001 options.enable |= PSGL_INIT_TRANSIENT_MEMORY_SIZE; #else options.enable |= PSGL_INIT_HOST_MEMORY_SIZE; #endif options.maxSPUs = 1; options.initializeSPUs = GL_FALSE; options.persistentMemorySize = 0; options.transientMemorySize = 0; options.errorConsole = 0; options.fifoSize = 0; options.hostMemorySize = 0; psglInit(&options); params.enable = PSGL_DEVICE_PARAMETERS_COLOR_FORMAT | \ PSGL_DEVICE_PARAMETERS_DEPTH_FORMAT | \ PSGL_DEVICE_PARAMETERS_MULTISAMPLING_MODE; params.colorFormat = GL_ARGB_SCE; params.depthFormat = GL_NONE; params.multisamplingMode = GL_MULTISAMPLING_NONE_SCE; /* if (tripleBuffering) { params.enable |= PSGL_DEVICE_PARAMETERS_BUFFERING_MODE; params.bufferingMode = PSGL_BUFFERING_MODE_TRIPLE; } */ if (pal60Hz) { params.enable |= PSGL_DEVICE_PARAMETERS_RESC_PAL_TEMPORAL_MODE; params.rescPalTemporalMode = RESC_PAL_TEMPORAL_MODE_60_INTERPOLATE; params.enable |= PSGL_DEVICE_PARAMETERS_RESC_RATIO_MODE; params.rescRatioMode = RESC_RATIO_MODE_FULLSCREEN; } if (resolutionId) { //Resolution setting CellVideoOutResolution resolution; cellVideoOutGetResolution(resolutionId, &resolution); params.enable |= PSGL_DEVICE_PARAMETERS_WIDTH_HEIGHT; params.width = resolution.width; params.height = resolution.height; m_currentResolutionId = resolutionId; } psgl_device = psglCreateDeviceExtended(¶ms); // Get the dimensions of the screen in question, and do stuff with it :) psglGetDeviceDimensions(psgl_device, &gl_width, &gl_height); // Create a context and bind it to the current display. psgl_context = psglCreateContext(); /* if(m_viewport_width == 0) m_viewport_width = gl_width; if(m_viewport_height == 0) m_viewport_height = gl_height; */ psglMakeCurrent(psgl_context, psgl_device); psglResetCurrentContext(); }