VirtualBox

source: vbox/trunk/src/VBox/HostServices/SharedOpenGL/crserverlib/server_glsl.c@ 46368

Last change on this file since 46368 was 46368, checked in by vboxsync, 12 years ago

crOpenGL: more debugging

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.1 KB
Line 
1/* $Id: server_glsl.c 46368 2013-06-03 17:24:51Z vboxsync $ */
2
3/** @file
4 * VBox OpenGL: GLSL related functions
5 */
6
7/*
8 * Copyright (C) 2009-2012 Oracle Corporation
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.215389.xyz. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License (GPL) as published by the Free Software
14 * Foundation, in version 2 as it comes in the "COPYING" file of the
15 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
16 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
17 */
18
19#include "cr_spu.h"
20#include "chromium.h"
21#include "cr_error.h"
22#include "cr_mem.h"
23#include "cr_net.h"
24#include "server_dispatch.h"
25#include "server.h"
26
27#ifdef CR_OPENGL_VERSION_2_0
28
29void SERVER_DISPATCH_APIENTRY crServerDispatchShaderSource(GLuint shader, GLsizei count, const char ** string, const GLint * length)
30{
31 /*@todo?crStateShaderSource(shader...);*/
32#ifdef DEBUG_misha
33 GLenum err = cr_server.head_spu->dispatch_table.GetError();
34#endif
35 cr_server.head_spu->dispatch_table.ShaderSource(crStateGetShaderHWID(shader), count, string, length);
36#ifdef DEBUG_misha
37 err = cr_server.head_spu->dispatch_table.GetError();
38 CRASSERT(err == GL_NO_ERROR);
39#endif
40}
41
42void SERVER_DISPATCH_APIENTRY crServerDispatchCompileShader(GLuint shader)
43{
44#ifdef DEBUG_misha
45 GLint iCompileStatus = GL_FALSE;
46#endif
47 crStateCompileShader(shader);
48 cr_server.head_spu->dispatch_table.CompileShader(crStateGetShaderHWID(shader));
49#ifdef DEBUG_misha
50 cr_server.head_spu->dispatch_table.GetShaderiv(crStateGetShaderHWID(shader), GL_COMPILE_STATUS, &iCompileStatus);
51 Assert(iCompileStatus == GL_TRUE);
52#endif
53 CR_SERVER_DUMP_COMPILE_SHADER(shader);
54}
55
56void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteShader(GLuint shader)
57{
58 GLuint shaderHW = crStateGetShaderHWID(shader);
59 crStateDeleteShader(shader);
60 if (shaderHW)
61 cr_server.head_spu->dispatch_table.DeleteShader(shaderHW);
62 else
63 crWarning("crServerDispatchDeleteShader: hwid not found for shader(%d)", shader);
64}
65
66void SERVER_DISPATCH_APIENTRY crServerDispatchAttachShader(GLuint program, GLuint shader)
67{
68 crStateAttachShader(program, shader);
69 cr_server.head_spu->dispatch_table.AttachShader(crStateGetProgramHWID(program), crStateGetShaderHWID(shader));
70}
71
72void SERVER_DISPATCH_APIENTRY crServerDispatchDetachShader(GLuint program, GLuint shader)
73{
74 crStateDetachShader(program, shader);
75 cr_server.head_spu->dispatch_table.DetachShader(crStateGetProgramHWID(program), crStateGetShaderHWID(shader));
76}
77
78void SERVER_DISPATCH_APIENTRY crServerDispatchLinkProgram(GLuint program)
79{
80 crStateLinkProgram(program);
81 cr_server.head_spu->dispatch_table.LinkProgram(crStateGetProgramHWID(program));
82 CR_SERVER_DUMP_LINK_PROGRAM(program);
83}
84
85void SERVER_DISPATCH_APIENTRY crServerDispatchUseProgram(GLuint program)
86{
87 crStateUseProgram(program);
88 cr_server.head_spu->dispatch_table.UseProgram(crStateGetProgramHWID(program));
89}
90
91void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteProgram(GLuint program)
92{
93 GLuint hwId = crStateGetProgramHWID(program);
94 crStateDeleteProgram(program);
95 if (hwId)
96 cr_server.head_spu->dispatch_table.DeleteProgram(hwId);
97 else
98 crWarning("crServerDispatchDeleteProgram: hwid not found for program(%d)", program);
99}
100
101void SERVER_DISPATCH_APIENTRY crServerDispatchValidateProgram(GLuint program)
102{
103 crStateValidateProgram(program);
104 cr_server.head_spu->dispatch_table.ValidateProgram(crStateGetProgramHWID(program));
105}
106
107void SERVER_DISPATCH_APIENTRY crServerDispatchBindAttribLocation(GLuint program, GLuint index, const char * name)
108{
109 crStateBindAttribLocation(program, index, name);
110 cr_server.head_spu->dispatch_table.BindAttribLocation(crStateGetProgramHWID(program), index, name);
111}
112
113void SERVER_DISPATCH_APIENTRY crServerDispatchDeleteObjectARB(GLhandleARB obj)
114{
115 GLuint hwid = crStateDeleteObjectARB(obj);
116
117 if (hwid)
118 cr_server.head_spu->dispatch_table.DeleteObjectARB(hwid);
119 else
120 crWarning("zero hwid for object %d", obj);
121}
122
123GLint SERVER_DISPATCH_APIENTRY crServerDispatchGetAttribLocation( GLuint program, const char * name )
124{
125 GLint retval;
126 retval = cr_server.head_spu->dispatch_table.GetAttribLocation(crStateGetProgramHWID(program), name );
127 crServerReturnValue( &retval, sizeof(retval) );
128 return retval; /* WILL PROBABLY BE IGNORED */
129}
130
131GLhandleARB SERVER_DISPATCH_APIENTRY crServerDispatchGetHandleARB( GLenum pname )
132{
133 GLhandleARB retval;
134 retval = cr_server.head_spu->dispatch_table.GetHandleARB(pname);
135 if (pname==GL_PROGRAM_OBJECT_ARB)
136 {
137 retval = crStateGLSLProgramHWIDtoID(retval);
138 }
139 crServerReturnValue( &retval, sizeof(retval) );
140 return retval; /* WILL PROBABLY BE IGNORED */
141}
142
143GLint SERVER_DISPATCH_APIENTRY crServerDispatchGetUniformLocation(GLuint program, const char * name)
144{
145 GLint retval;
146 retval = cr_server.head_spu->dispatch_table.GetUniformLocation(crStateGetProgramHWID(program), name);
147 crServerReturnValue( &retval, sizeof(retval) );
148 return retval; /* WILL PROBABLY BE IGNORED */
149}
150
151#endif /* #ifdef CR_OPENGL_VERSION_2_0 */
Note: See TracBrowser for help on using the repository browser.

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