Changeset 22284 in vbox for trunk/src/VBox/HostServices
- Timestamp:
- Aug 17, 2009 8:44:47 AM (16 years ago)
- svn:sync-xref-src-repo-rev:
- 51129
- Location:
- trunk/src/VBox/HostServices/SharedOpenGL
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedOpenGL/Makefile.kmk
r22155 r22284 172 172 $(VBOX_PATH_CROGL_GENFILES)/spu_dispatch_table.h \ 173 173 $(VBOX_PATH_CROGL_GENFILES)/cr_opcodes.h \ 174 $(VBOX_PATH_CROGL_GENFILES)/unpack_extend.h 174 $(VBOX_PATH_CROGL_GENFILES)/unpack_extend.h \ 175 $(VBOX_PATH_CROGL_GENFILES)/state/cr_currentpointers.h \ 176 $(VBOX_PATH_CROGL_GENFILES)/state/cr_statefuncs.h 175 177 VBoxOGLcrunpacker_SOURCES = \ 176 178 unpacker/unpack_arrays.c \ -
trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp
r22165 r22284 71 71 72 72 static const char* gszVBoxOGLSSMMagic = "***OpenGL state data***"; 73 #define SHCROGL_SSM_VERSION 573 #define SHCROGL_SSM_VERSION 6 74 74 75 75 typedef struct -
trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_arrays.c
r21423 r22284 8 8 #include "unpack_extend.h" 9 9 #include "unpacker.h" 10 #include "cr_glstate.h" 10 11 /** 11 12 * \mainpage Unpacker … … 158 159 crError( "Can't decode MultiDrawElementsEXT" ); 159 160 } 161 162 static void crUnpackSetClientPointerByIndex(int index, GLint size, 163 GLenum type, GLboolean normalized, 164 GLsizei stride, const GLvoid *pointer, CRClientState *c) 165 { 166 if (index<7) 167 { 168 switch (index) 169 { 170 case 0: 171 cr_unpackDispatch.VertexPointer(size, type, stride, pointer); 172 break; 173 case 1: 174 cr_unpackDispatch.ColorPointer(size, type, stride, pointer); 175 break; 176 case 2: 177 cr_unpackDispatch.FogCoordPointerEXT(type, stride, pointer); 178 break; 179 case 3: 180 cr_unpackDispatch.SecondaryColorPointerEXT(size, type, stride, pointer); 181 break; 182 case 4: 183 cr_unpackDispatch.EdgeFlagPointer(stride, pointer); 184 break; 185 case 5: 186 cr_unpackDispatch.IndexPointer(type, stride, pointer); 187 break; 188 case 6: 189 cr_unpackDispatch.NormalPointer(type, stride, pointer); 190 break; 191 } 192 } 193 else if (index<(7+CR_MAX_TEXTURE_UNITS)) 194 { 195 int curTexUnit = c->curClientTextureUnit; 196 if ((index-7)!=curTexUnit) 197 { 198 cr_unpackDispatch.ClientActiveTextureARB(GL_TEXTURE0_ARB+index-7); 199 } 200 cr_unpackDispatch.TexCoordPointer(size, type, stride, pointer); 201 if ((index-7)!=curTexUnit) 202 { 203 cr_unpackDispatch.ClientActiveTextureARB(GL_TEXTURE0_ARB+curTexUnit); 204 } 205 } 206 else 207 { 208 cr_unpackDispatch.VertexAttribPointerARB(index-7-CR_MAX_TEXTURE_UNITS, 209 size, type, normalized, stride, pointer); 210 } 211 } 212 213 void crUnpackExtendLockArraysEXT(void) 214 { 215 GLint first = READ_DATA(sizeof(int) + 4, GLint); 216 GLint count = READ_DATA(sizeof(int) + 8, GLint); 217 int numenabled = READ_DATA(sizeof(int) + 12, int); 218 219 CRContext *g = crStateGetCurrent(); 220 CRClientState *c = &g->client; 221 CRClientPointer *cp; 222 int i, index, offset; 223 unsigned char *data; 224 225 offset = 2*sizeof(int)+12; 226 227 for (i=0; i<numenabled; ++i) 228 { 229 index = READ_DATA(offset, int); 230 offset += sizeof(int); 231 cp = crStateGetClientPointerByIndex(index, &c->array); 232 CRASSERT(cp && cp->enabled && (!cp->buffer || !cp->buffer->name)); 233 data = crAlloc((first+count)*cp->bytesPerIndex); 234 crMemcpy(data+first*cp->bytesPerIndex, DATA_POINTER(offset, GLvoid), count*cp->bytesPerIndex); 235 offset += count*cp->bytesPerIndex; 236 crUnpackSetClientPointerByIndex(index, cp->size, cp->type, cp->normalized, 0, data, c); 237 } 238 cr_unpackDispatch.LockArraysEXT(first, count); 239 } 240 241 void crUnpackExtendUnlockArraysEXT(void) 242 { 243 int i; 244 CRContext *g = crStateGetCurrent(); 245 CRClientState *c = &g->client; 246 CRClientPointer *cp; 247 248 cr_unpackDispatch.UnlockArraysEXT(); 249 250 for (i=0; i<CRSTATECLIENT_MAX_VERTEXARRAYS; ++i) 251 { 252 cp = crStateGetClientPointerByIndex(i, &c->array); 253 if (cp->enabled) 254 { 255 crUnpackSetClientPointerByIndex(i, cp->size, cp->type, cp->normalized, cp->prevStride, cp->prevPtr, c); 256 } 257 } 258 } -
trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpacker_special
r22155 r22284 166 166 DeleteFramebuffersEXT 167 167 DeleteRenderbuffersEXT 168 LockArraysEXT 169 UnlockArraysEXT
Note:
See TracChangeset
for help on using the changeset viewer.