VirtualBox

source: vbox/trunk/src/VBox/HostServices/SharedOpenGL/unpacker/unpack_arrays.c@ 21780

Last change on this file since 21780 was 21423, checked in by vboxsync, 16 years ago

crOpenGL: fix VBOs on NVidia cards

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 5.0 KB
Line 
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 "cr_error.h"
8#include "unpack_extend.h"
9#include "unpacker.h"
10/**
11 * \mainpage Unpacker
12 *
13 * \section UnpackerIntroduction Introduction
14 *
15 * Chromium consists of all the top-level files in the cr
16 * directory. The unpacker module basically takes care of API dispatch,
17 * and OpenGL state management.
18 *
19 */
20
21void crUnpackExtendVertexPointer(void)
22{
23 GLint size = READ_DATA( 8, GLint );
24 GLenum type = READ_DATA( 12, GLenum );
25 GLsizei stride = READ_DATA( 16, GLsizei );
26 GLintptrARB pointer = (GLintptrARB) READ_DATA( 20, GLuint );
27 cr_unpackDispatch.VertexPointer( size, type, stride, (void *) pointer );
28}
29
30void crUnpackExtendTexCoordPointer(void)
31{
32 GLint size = READ_DATA( 8, GLint );
33 GLenum type = READ_DATA( 12, GLenum );
34 GLsizei stride = READ_DATA( 16, GLsizei );
35 GLintptrARB pointer = READ_DATA( 20, GLuint );
36 cr_unpackDispatch.TexCoordPointer( size, type, stride, (void *) pointer );
37}
38
39void crUnpackExtendNormalPointer(void)
40{
41 GLenum type = READ_DATA( 8, GLenum );
42 GLsizei stride = READ_DATA( 12, GLsizei );
43 GLintptrARB pointer = READ_DATA( 16, GLuint );
44 cr_unpackDispatch.NormalPointer( type, stride, (void *) pointer );
45}
46
47void crUnpackExtendIndexPointer(void)
48{
49 GLenum type = READ_DATA( 8, GLenum );
50 GLsizei stride = READ_DATA( 12, GLsizei );
51 GLintptrARB pointer = READ_DATA( 16, GLuint );
52 cr_unpackDispatch.IndexPointer( type, stride, (void *) pointer );
53}
54
55void crUnpackExtendEdgeFlagPointer(void)
56{
57 GLsizei stride = READ_DATA( 8, GLsizei );
58 GLintptrARB pointer = READ_DATA( 12, GLuint );
59 cr_unpackDispatch.EdgeFlagPointer( stride, (void *) pointer );
60}
61
62void crUnpackExtendColorPointer(void)
63{
64 GLint size = READ_DATA( 8, GLint );
65 GLenum type = READ_DATA( 12, GLenum );
66 GLsizei stride = READ_DATA( 16, GLsizei );
67 GLintptrARB pointer = READ_DATA( 20, GLuint );
68 cr_unpackDispatch.ColorPointer( size, type, stride, (void *) pointer );
69}
70
71void crUnpackExtendFogCoordPointerEXT(void)
72{
73 GLenum type = READ_DATA( 8, GLenum );
74 GLsizei stride = READ_DATA( 12, GLsizei );
75 GLintptrARB pointer = READ_DATA( 16, GLuint );
76 cr_unpackDispatch.FogCoordPointerEXT( type, stride, (void *) pointer );
77}
78
79void crUnpackExtendSecondaryColorPointerEXT(void)
80{
81 GLint size = READ_DATA( 8, GLint );
82 GLenum type = READ_DATA( 12, GLenum );
83 GLsizei stride = READ_DATA( 16, GLsizei );
84 GLintptrARB pointer = READ_DATA( 20, GLuint );
85 cr_unpackDispatch.SecondaryColorPointerEXT( size, type, stride, (void *) pointer );
86}
87
88void crUnpackExtendVertexAttribPointerARB(void)
89{
90 GLuint index = READ_DATA( 8, GLuint);
91 GLint size = READ_DATA( 12, GLint );
92 GLenum type = READ_DATA( 16, GLenum );
93 GLboolean normalized = READ_DATA( 20, GLboolean );
94 GLsizei stride = READ_DATA( 24, GLsizei );
95 GLintptrARB pointer = READ_DATA( 28, GLuint );
96 cr_unpackDispatch.VertexAttribPointerARB( index, size, type, normalized, stride, (void *) pointer );
97}
98
99void crUnpackExtendVertexAttribPointerNV(void)
100{
101 GLuint index = READ_DATA( 8, GLuint);
102 GLint size = READ_DATA( 12, GLint );
103 GLenum type = READ_DATA( 16, GLenum );
104 GLsizei stride = READ_DATA( 20, GLsizei );
105 GLintptrARB pointer = READ_DATA( 24, GLuint );
106 cr_unpackDispatch.VertexAttribPointerNV( index, size, type, stride, (void *) pointer );
107}
108
109void crUnpackExtendInterleavedArrays(void)
110{
111 GLenum format = READ_DATA( 8, GLenum );
112 GLsizei stride = READ_DATA( 12, GLsizei );
113 GLintptrARB pointer = READ_DATA( 16, GLuint );
114 cr_unpackDispatch.InterleavedArrays( format, stride, (void *) pointer );
115}
116
117void crUnpackExtendDrawElements(void)
118{
119 GLenum mode = READ_DATA( 8, GLenum );
120 GLsizei count = READ_DATA( 12, GLsizei );
121 GLenum type = READ_DATA( 16, GLenum );
122 GLintptrARB indices = READ_DATA( 20, GLuint );
123 void * indexptr;
124#ifdef CR_ARB_vertex_buffer_object
125 GLboolean hasidxdata = READ_DATA(24, GLint);
126 indexptr = hasidxdata ? DATA_POINTER(28, void) : (void*)indices;
127#else
128 indexptr = DATA_POINTER(24, void);
129#endif
130 cr_unpackDispatch.DrawElements(mode, count, type, indexptr);
131}
132
133void crUnpackExtendDrawRangeElements(void)
134{
135 GLenum mode = READ_DATA( 8, GLenum );
136 GLuint start = READ_DATA( 12, GLuint );
137 GLuint end = READ_DATA( 16, GLuint );
138 GLsizei count = READ_DATA( 20, GLsizei );
139 GLenum type = READ_DATA( 24, GLenum );
140 GLintptrARB indices = READ_DATA( 28, GLuint );
141 void * indexptr;
142#ifdef CR_ARB_vertex_buffer_object
143 GLboolean hasidxdata = READ_DATA(32, GLint);
144 indexptr = hasidxdata ? DATA_POINTER(36, void) : (void*)indices;
145#else
146 indexptr = DATA_POINTER(32, void);
147#endif
148 cr_unpackDispatch.DrawRangeElements(mode, start, end, count, type, indexptr);
149}
150
151void crUnpackMultiDrawArraysEXT(void)
152{
153 crError( "Can't decode MultiDrawArraysEXT" );
154}
155
156void crUnpackMultiDrawElementsEXT(void)
157{
158 crError( "Can't decode MultiDrawElementsEXT" );
159}
Note: See TracBrowser for help on using the repository browser.

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