VirtualBox

source: vbox/trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_bufferobject.c@ 21308

最後變更 在這個檔案從21308是 21308,由 vboxsync 提交於 16 年 前

crOpenGL: use host side VBO when possible

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Id
檔案大小: 1.9 KB
 
1/* Copyright (c) 2001, Stanford University
2 * All rights reserved
3 *
4 * See the file LICENSE.txt for information on redistributing this software.
5 */
6
7#include "unpacker.h"
8#include "cr_mem.h"
9#include "cr_error.h"
10
11
12void crUnpackExtendGetBufferSubDataARB( void )
13{
14 GLenum target = READ_DATA( 8, GLenum );
15 GLintptrARB offset = READ_DATA( 12, GLint );
16 GLsizeiptrARB size = READ_DATA( 16, GLint );
17#if 0
18 GLvoid *data;
19#endif
20
21 SET_RETURN_PTR( 20 );
22 SET_WRITEBACK_PTR( 28 );
23#if 0
24 crMemcpy( &data, DATA_POINTER( 20, GLvoid ), sizeof(data) );
25 printf("%s data=%p\n", __FUNCTION__, data);
26 cr_unpackDispatch.GetBufferSubDataARB( target, offset, size, data );
27#endif
28 cr_unpackDispatch.GetBufferSubDataARB( target, offset, size, NULL );
29}
30
31
32void crUnpackExtendBufferDataARB( void )
33{
34 GLenum target = READ_DATA(sizeof(int) + 4, GLenum);
35 GLsizeiptrARB size = READ_DATA(sizeof(int) + 8, GLsizeiptrARB);
36 GLenum usage = READ_DATA(sizeof(int) + 12, GLenum);
37 GLboolean hasdata = READ_DATA(sizeof(int) + 16, GLboolean);
38 GLvoid *data = DATA_POINTER(sizeof(int) + 16 + sizeof(GLboolean), GLvoid);
39
40 CRASSERT(sizeof(GLsizeiptrARB) == 4);
41 /*@todo, why?*/
42 /*CRASSERT(usage == GL_STATIC_DRAW_ARB);*/
43
44 cr_unpackDispatch.BufferDataARB(target, size, hasdata ? data:NULL, usage);
45}
46
47
48void crUnpackExtendBufferSubDataARB( void )
49{
50 GLenum target = READ_DATA( sizeof(int) + 4, GLenum );
51 GLintptrARB offset = READ_DATA( sizeof(int) + 8, GLintptrARB );
52 GLsizeiptrARB size = READ_DATA( sizeof(int) + 12, GLsizeiptrARB );
53 GLvoid *data = DATA_POINTER( sizeof(int) + 16, GLvoid );
54
55 cr_unpackDispatch.BufferSubDataARB( target, offset, size, data );
56}
57
58
59void crUnpackExtendDeleteBuffersARB(void)
60{
61 GLsizei n = READ_DATA( 8, GLsizei );
62 const GLuint *buffers = DATA_POINTER( 12, GLuint );
63 cr_unpackDispatch.DeleteBuffersARB( n, buffers );
64}
65
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette