1 /* 2 (c) Copyright 2001-2011 The world wide DirectFB Open Source Community (directfb.org) 3 (c) Copyright 2000-2004 Convergence (integrated media) GmbH 4 5 All rights reserved. 6 7 Written by Denis Oliver Kropp <dok@directfb.org>, 8 Andreas Hundt <andi@fischlustig.de>, 9 Sven Neumann <neo@directfb.org>, 10 Ville Syrjälä <syrjala@sci.fi> and 11 Claudio Ciccani <klan@users.sf.net>. 12 13 This library is free software; you can redistribute it and/or 14 modify it under the terms of the GNU Lesser General Public 15 License as published by the Free Software Foundation; either 16 version 2 of the License, or (at your option) any later version. 17 18 This library is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 Lesser General Public License for more details. 22 23 You should have received a copy of the GNU Lesser General Public 24 License along with this library; if not, write to the 25 Free Software Foundation, Inc., 59 Temple Place - Suite 330, 26 Boston, MA 02111-1307, USA. 27 */ 28 29 #ifndef ___CoreDFB__H___ 30 #define ___CoreDFB__H___ 31 32 #include <core/CoreDFB_includes.h> 33 34 /********************************************************************************************************************** 35 * CoreDFB 36 */ 37 38 #ifdef __cplusplus 39 #include <core/Interface.h> 40 41 extern "C" { 42 #endif 43 44 45 DFBResult CoreDFB_Register( 46 CoreDFB *obj, 47 u32 slave_call); 48 49 DFBResult CoreDFB_CreateSurface( 50 CoreDFB *obj, 51 const CoreSurfaceConfig *config, 52 CoreSurfaceTypeFlags type, 53 u64 resource_id, 54 CorePalette *palette, 55 CoreSurface **ret_surface); 56 57 DFBResult CoreDFB_CreatePalette( 58 CoreDFB *obj, 59 u32 size, 60 CorePalette **ret_palette); 61 62 DFBResult CoreDFB_CreateState( 63 CoreDFB *obj, 64 CoreGraphicsState **ret_state); 65 66 DFBResult CoreDFB_WaitIdle( 67 CoreDFB *obj 68 ); 69 70 DFBResult CoreDFB_CreateImageProvider( 71 CoreDFB *obj, 72 u32 buffer_call, 73 u32 *ret_call); 74 75 76 void CoreDFB_Init_Dispatch( 77 CoreDFB *core, 78 CoreDFB *obj, 79 FusionCall *call 80 ); 81 82 void CoreDFB_Deinit_Dispatch( 83 FusionCall *call 84 ); 85 86 87 #ifdef __cplusplus 88 } 89 #endif 90 91 92 93 94 /* 95 * CoreDFB Calls 96 */ 97 typedef enum { 98 _CoreDFB_Register = 1, 99 _CoreDFB_CreateSurface = 2, 100 _CoreDFB_CreatePalette = 3, 101 _CoreDFB_CreateState = 4, 102 _CoreDFB_WaitIdle = 5, 103 _CoreDFB_CreateImageProvider = 6, 104 } CoreDFBCall; 105 106 /* 107 * CoreDFB_Register 108 */ 109 typedef struct { 110 u32 slave_call; 111 } CoreDFBRegister; 112 113 typedef struct { 114 DFBResult result; 115 } CoreDFBRegisterReturn; 116 117 118 /* 119 * CoreDFB_CreateSurface 120 */ 121 typedef struct { 122 CoreSurfaceConfig config; 123 CoreSurfaceTypeFlags type; 124 u64 resource_id; 125 bool palette_set; 126 u32 palette_id; 127 } CoreDFBCreateSurface; 128 129 typedef struct { 130 DFBResult result; 131 u32 surface_id; 132 } CoreDFBCreateSurfaceReturn; 133 134 135 /* 136 * CoreDFB_CreatePalette 137 */ 138 typedef struct { 139 u32 size; 140 } CoreDFBCreatePalette; 141 142 typedef struct { 143 DFBResult result; 144 u32 palette_id; 145 } CoreDFBCreatePaletteReturn; 146 147 148 /* 149 * CoreDFB_CreateState 150 */ 151 typedef struct { 152 } CoreDFBCreateState; 153 154 typedef struct { 155 DFBResult result; 156 u32 state_id; 157 } CoreDFBCreateStateReturn; 158 159 160 /* 161 * CoreDFB_WaitIdle 162 */ 163 typedef struct { 164 } CoreDFBWaitIdle; 165 166 typedef struct { 167 DFBResult result; 168 } CoreDFBWaitIdleReturn; 169 170 171 /* 172 * CoreDFB_CreateImageProvider 173 */ 174 typedef struct { 175 u32 buffer_call; 176 } CoreDFBCreateImageProvider; 177 178 typedef struct { 179 DFBResult result; 180 u32 call; 181 } CoreDFBCreateImageProviderReturn; 182 183 184 DFBResult ICore_Real__Register( CoreDFB *obj, 185 u32 slave_call ); 186 187 DFBResult ICore_Real__CreateSurface( CoreDFB *obj, 188 const CoreSurfaceConfig *config, 189 CoreSurfaceTypeFlags type, 190 u64 resource_id, 191 CorePalette *palette, 192 CoreSurface **ret_surface ); 193 194 DFBResult ICore_Real__CreatePalette( CoreDFB *obj, 195 u32 size, 196 CorePalette **ret_palette ); 197 198 DFBResult ICore_Real__CreateState( CoreDFB *obj, 199 CoreGraphicsState **ret_state ); 200 201 DFBResult ICore_Real__WaitIdle( CoreDFB *obj 202 ); 203 204 DFBResult ICore_Real__CreateImageProvider( CoreDFB *obj, 205 u32 buffer_call, 206 u32 *ret_call ); 207 208 DFBResult ICore_Requestor__Register( CoreDFB *obj, 209 u32 slave_call ); 210 211 DFBResult ICore_Requestor__CreateSurface( CoreDFB *obj, 212 const CoreSurfaceConfig *config, 213 CoreSurfaceTypeFlags type, 214 u64 resource_id, 215 CorePalette *palette, 216 CoreSurface **ret_surface ); 217 218 DFBResult ICore_Requestor__CreatePalette( CoreDFB *obj, 219 u32 size, 220 CorePalette **ret_palette ); 221 222 DFBResult ICore_Requestor__CreateState( CoreDFB *obj, 223 CoreGraphicsState **ret_state ); 224 225 DFBResult ICore_Requestor__WaitIdle( CoreDFB *obj 226 ); 227 228 DFBResult ICore_Requestor__CreateImageProvider( CoreDFB *obj, 229 u32 buffer_call, 230 u32 *ret_call ); 231 232 233 DFBResult CoreDFBDispatch__Dispatch( CoreDFB *obj, 234 FusionID caller, 235 int method, 236 void *ptr, 237 unsigned int length, 238 void *ret_ptr, 239 unsigned int ret_size, 240 unsigned int *ret_length ); 241 242 243 #endif 244