From 94f543d114560dae933c102bd861e801fb37a280 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 10 Nov 2010 22:10:30 +0000 Subject: libvo/w32_common.c: Move setting of pixel format from init to config This allows it to depend on flags etc. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32619 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libvo/w32_common.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/libvo/w32_common.c b/libvo/w32_common.c index cfcc49d09f..c5ab27f0ac 100644 --- a/libvo/w32_common.c +++ b/libvo/w32_common.c @@ -392,6 +392,27 @@ static int createRenderingContext(void) { * \return 1 - Success, 0 - Failure */ int vo_w32_config(uint32_t width, uint32_t height, uint32_t flags) { + PIXELFORMATDESCRIPTOR pfd; + int pf; + HDC vo_hdc = vo_w32_get_dc(vo_window); + + memset(&pfd, 0, sizeof pfd); + pfd.nSize = sizeof pfd; + pfd.nVersion = 1; + pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; + pfd.iPixelType = PFD_TYPE_RGBA; + pfd.cColorBits = 24; + pfd.iLayerType = PFD_MAIN_PLANE; + pf = ChoosePixelFormat(vo_hdc, &pfd); + if (!pf) { + mp_msg(MSGT_VO, MSGL_ERR, "vo: win32: unable to select a valid pixel format!\n"); + vo_w32_release_dc(vo_window, vo_hdc); + return 0; + } + + SetPixelFormat(vo_hdc, pf, &pfd); + vo_w32_release_dc(vo_window, vo_hdc); + // we already have a fully initialized window, so nothing needs to be done if (flags & VOFLAG_HIDDEN) return 1; @@ -442,9 +463,6 @@ static char *get_display_name(void) { * \return 1 = Success, 0 = Failure */ int vo_w32_init(void) { - PIXELFORMATDESCRIPTOR pfd; - HDC vo_hdc; - int pf; HICON mplayerIcon = 0; char exedir[MAX_PATH]; HINSTANCE user32; @@ -502,24 +520,6 @@ int vo_w32_init(void) { free(dev); updateScreenProperties(); - vo_hdc = vo_w32_get_dc(vo_window); - memset(&pfd, 0, sizeof pfd); - pfd.nSize = sizeof pfd; - pfd.nVersion = 1; - pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; - pfd.iPixelType = PFD_TYPE_RGBA; - pfd.cColorBits = 24; - pfd.iLayerType = PFD_MAIN_PLANE; - pf = ChoosePixelFormat(vo_hdc, &pfd); - if (!pf) { - mp_msg(MSGT_VO, MSGL_ERR, "vo: win32: unable to select a valid pixel format!\n"); - vo_w32_release_dc(vo_window, vo_hdc); - return 0; - } - - SetPixelFormat(vo_hdc, pf, &pfd); - vo_w32_release_dc(vo_window, vo_hdc); - mp_msg(MSGT_VO, MSGL_V, "vo: win32: running at %dx%d with depth %d\n", vo_screenwidth, vo_screenheight, depthonscreen); return 1; -- cgit v1.2.3