radeon_glamor.h revision 0d16fef4
1de2362d3Smrg/* 2de2362d3Smrg * Copyright © 2011 Intel Corporation. 3de2362d3Smrg * 2012 Advanced Micro Devices, Inc. 4de2362d3Smrg * 5de2362d3Smrg * Permission is hereby granted, free of charge, to any person 6de2362d3Smrg * obtaining a copy of this software and associated documentation 7de2362d3Smrg * files (the "Software"), to deal in the Software without 8de2362d3Smrg * restriction, including without limitation the rights to use, copy, 9de2362d3Smrg * modify, merge, publish, distribute, sublicense, and/or sell copies 10de2362d3Smrg * of the Software, and to permit persons to whom the Software is 11de2362d3Smrg * furnished to do so, subject to the following conditions: 12de2362d3Smrg * 13de2362d3Smrg * The above copyright notice and this permission notice (including 14de2362d3Smrg * the next paragraph) shall be included in all copies or substantial 15de2362d3Smrg * portions of the Software. 16de2362d3Smrg * 17de2362d3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 18de2362d3Smrg * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 19de2362d3Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 20de2362d3Smrg * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 21de2362d3Smrg * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 22de2362d3Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23de2362d3Smrg * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 24de2362d3Smrg * DEALINGS IN THE SOFTWARE. 25de2362d3Smrg */ 26de2362d3Smrg 27de2362d3Smrg#ifndef RADEON_GLAMOR_H 28de2362d3Smrg#define RADEON_GLAMOR_H 29de2362d3Smrg 30de2362d3Smrg#include "xf86xv.h" 310d16fef4Smrg 320d16fef4Smrgstruct radeon_pixmap; 330d16fef4Smrg 34de2362d3Smrg#ifdef USE_GLAMOR 35de2362d3Smrg 360d16fef4Smrg#define GLAMOR_FOR_XORG 1 370d16fef4Smrg#include <glamor.h> 380d16fef4Smrg 39de2362d3Smrg#include "radeon_surface.h" 40de2362d3Smrg 410d16fef4Smrg#ifndef CREATE_PIXMAP_USAGE_SHARED 420d16fef4Smrg#define CREATE_PIXMAP_USAGE_SHARED RADEON_CREATE_PIXMAP_DRI2 430d16fef4Smrg#endif 440d16fef4Smrg 450d16fef4Smrg#define RADEON_CREATE_PIXMAP_SHARED(usage) \ 460d16fef4Smrg (((usage) & ~RADEON_CREATE_PIXMAP_TILING_FLAGS) == RADEON_CREATE_PIXMAP_DRI2 || \ 470d16fef4Smrg (usage) == CREATE_PIXMAP_USAGE_SHARED) 480d16fef4Smrg 490d16fef4Smrg#ifndef GLAMOR_NO_DRI3 500d16fef4Smrg#define GLAMOR_NO_DRI3 0 510d16fef4Smrg#define glamor_fd_from_pixmap glamor_dri3_fd_from_pixmap 520d16fef4Smrg#define glamor_pixmap_from_fd glamor_egl_dri3_pixmap_from_fd 530d16fef4Smrg#endif 540d16fef4Smrg 550d16fef4Smrg#ifndef GLAMOR_INVERTED_Y_AXIS 560d16fef4Smrg#define GLAMOR_INVERTED_Y_AXIS 0 570d16fef4Smrg#endif 580d16fef4Smrg#ifndef GLAMOR_USE_SCREEN 590d16fef4Smrg#define GLAMOR_USE_SCREEN 0 600d16fef4Smrg#endif 610d16fef4Smrg#ifndef GLAMOR_USE_PICTURE_SCREEN 620d16fef4Smrg#define GLAMOR_USE_PICTURE_SCREEN 0 630d16fef4Smrg#endif 640d16fef4Smrg 65de2362d3SmrgBool radeon_glamor_pre_init(ScrnInfoPtr scrn); 66de2362d3SmrgBool radeon_glamor_init(ScreenPtr screen); 670d16fef4Smrgvoid radeon_glamor_fini(ScreenPtr screen); 680d16fef4Smrgvoid radeon_glamor_screen_init(ScreenPtr screen); 69de2362d3SmrgBool radeon_glamor_create_screen_resources(ScreenPtr screen); 70de2362d3Smrgvoid radeon_glamor_free_screen(int scrnIndex, int flags); 71de2362d3Smrg 720d16fef4SmrgBool radeon_glamor_create_textured_pixmap(PixmapPtr pixmap, struct radeon_pixmap *priv); 73de2362d3Smrgvoid radeon_glamor_exchange_buffers(PixmapPtr src, PixmapPtr dst); 74de2362d3Smrg 75de2362d3SmrgXF86VideoAdaptorPtr radeon_glamor_xv_init(ScreenPtr pScreen, int num_adapt); 76de2362d3Smrg 77de2362d3Smrg#else 78de2362d3Smrg 79de2362d3Smrgstatic inline Bool radeon_glamor_pre_init(ScrnInfoPtr scrn) { return FALSE; } 80de2362d3Smrgstatic inline Bool radeon_glamor_init(ScreenPtr screen) { return FALSE; } 810d16fef4Smrgstatic inline void radeon_glamor_fini(ScreenPtr screen) { } 82de2362d3Smrgstatic inline Bool radeon_glamor_create_screen_resources(ScreenPtr screen) { return FALSE; } 83de2362d3Smrgstatic inline void radeon_glamor_free_screen(int scrnIndex, int flags) { } 84de2362d3Smrg 850d16fef4Smrgstatic inline Bool radeon_glamor_create_textured_pixmap(PixmapPtr pixmap, struct radeon_pixmap *priv) { return TRUE; } 86de2362d3Smrg 87de2362d3Smrgstatic inline void radeon_glamor_exchange_buffers(PixmapPtr src, PixmapPtr dst) {} 88de2362d3Smrg 89de2362d3Smrgstatic inline struct radeon_pixmap *radeon_get_pixmap_private(PixmapPtr pixmap) { return NULL; } 90de2362d3Smrg 91de2362d3Smrgstatic inline XF86VideoAdaptorPtr radeon_glamor_xv_init(ScreenPtr pScreen, int num_adapt) { return NULL; } 92de2362d3Smrg#endif 93de2362d3Smrg 94de2362d3Smrg#endif /* RADEON_GLAMOR_H */ 95