X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fstate_trackers%2Fwgl%2Fstw_framebuffer.h;h=2b7d173af1a0e6240ffea09f5306bb40f8c20deb;hb=877128505431adaf817dc8069172ebe4a1cdf5d8;hp=08cc4973bcea247507b9867fa44190cb48104ce3;hpb=45dac0d82a5a69166e86dce77c2550f7512c541e;p=mesa.git diff --git a/src/gallium/state_trackers/wgl/stw_framebuffer.h b/src/gallium/state_trackers/wgl/stw_framebuffer.h index 08cc4973bce..2b7d173af1a 100644 --- a/src/gallium/state_trackers/wgl/stw_framebuffer.h +++ b/src/gallium/state_trackers/wgl/stw_framebuffer.h @@ -1,6 +1,6 @@ /************************************************************************** * - * Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas. + * Copyright 2008 VMware, Inc. * All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a @@ -18,7 +18,7 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. - * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR + * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -30,22 +30,21 @@ #include -#include "main/mtypes.h" - #include "os/os_thread.h" -struct pipe_surface; +struct pipe_resource; +struct st_framebuffer_iface; struct stw_pixelformat_info; /** - * Windows framebuffer, derived from gl_framebuffer. + * Windows framebuffer. */ struct stw_framebuffer { /** * This mutex has two purposes: * - protect the access to the mutable data members below - * - prevent the the framebuffer from being deleted while being accessed. + * - prevent the framebuffer from being deleted while being accessed. * * It is OK to lock this mutex while holding the stw_device::fb_mutex lock, * but the opposite must never happen. @@ -59,22 +58,29 @@ struct stw_framebuffer * above, to prevent the framebuffer from being destroyed. */ - HDC hDC; HWND hWnd; int iPixelFormat; const struct stw_pixelformat_info *pfi; - GLvisual visual; + + /* A pixel format that can be used by GDI */ + int iDisplayablePixelFormat; + boolean bPbuffer; + + struct st_framebuffer_iface *stfb; /* * Mutable members. */ - struct st_framebuffer *stfb; + unsigned refcnt; + /* FIXME: Make this work for multiple contexts bound to the same framebuffer */ boolean must_resize; + boolean minimized; /**< Is the window currently minimized? */ + unsigned width; unsigned height; @@ -114,6 +120,11 @@ stw_framebuffer_create( HDC hdc, int iPixelFormat ); +void +stw_framebuffer_reference( + struct stw_framebuffer **ptr, + struct stw_framebuffer *fb); + /** * Search a framebuffer with a matching HWND. * @@ -134,14 +145,10 @@ struct stw_framebuffer * stw_framebuffer_from_hdc( HDC hdc ); -BOOL -stw_framebuffer_allocate( - struct stw_framebuffer *fb ); - BOOL stw_framebuffer_present_locked(HDC hdc, struct stw_framebuffer *fb, - struct pipe_surface *surface); + struct pipe_resource *res); void stw_framebuffer_update(