VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/crOpenGL/pack/packspu_getstring.c@ 15844

Last change on this file since 15844 was 15532, checked in by vboxsync, 16 years ago

crOpenGL: export to OSE

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.9 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 "packspu.h"
8#include "cr_packfunctions.h"
9#include "state/cr_statefuncs.h"
10#include "cr_string.h"
11#include "packspu_proto.h"
12
13static const GLubyte *
14GetExtensions(void)
15{
16 GLubyte return_value[10*1000];
17 const GLubyte *extensions, *ext;
18 GET_THREAD(thread);
19 int writeback = 1;
20
21 if (pack_spu.swap)
22 {
23 crPackGetStringSWAP( GL_EXTENSIONS, return_value, &writeback );
24 }
25 else
26 {
27 crPackGetString( GL_EXTENSIONS, return_value, &writeback );
28 }
29 packspuFlush( (void *) thread );
30
31 while (writeback)
32 crNetRecv();
33
34 CRASSERT(crStrlen((char *)return_value) < 10*1000);
35
36 /* OK, we got the result from the server. Now we have to
37 * intersect is with the set of extensions that Chromium understands
38 * and tack on the Chromium-specific extensions.
39 */
40 extensions = return_value;
41 ext = crStateMergeExtensions(1, &extensions);
42
43 return ext; /* XXX we should return a static string here! */
44}
45
46
47static GLfloat
48GetVersionString(void)
49{
50 GLubyte return_value[100];
51 GET_THREAD(thread);
52 int writeback = 1;
53 GLfloat version;
54
55 if (pack_spu.swap)
56 crPackGetStringSWAP( GL_VERSION, return_value, &writeback );
57 else
58 crPackGetString( GL_VERSION, return_value, &writeback );
59 packspuFlush( (void *) thread );
60
61 while (writeback)
62 crNetRecv();
63
64 CRASSERT(crStrlen((char *)return_value) < 100);
65
66 version = crStrToFloat((char *) return_value);
67 version = crStateComputeVersion(version);
68
69 return version;
70}
71
72
73const GLubyte * PACKSPU_APIENTRY packspu_GetString( GLenum name )
74{
75 GET_CONTEXT(ctx);
76 if (name == GL_EXTENSIONS)
77 {
78 return GetExtensions();
79 }
80 else if (name == GL_VERSION)
81 {
82 float version = GetVersionString();
83 sprintf(ctx->glVersion, "%g Chromium %s", version, CR_VERSION_STRING);
84 return (const GLubyte *) ctx->glVersion;
85 }
86 else
87 {
88 return crStateGetString(name);
89 }
90}
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