summaryrefslogtreecommitdiff
path: root/src/VBox/GuestHost/OpenGL/packer/pack_shaders.c
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2014-03-26 19:21:20 +0000
committer <>2014-05-08 15:03:54 +0000
commitfb123f93f9f5ce42c8e5785d2f8e0edaf951740e (patch)
treec2103d76aec5f1f10892cd1d3a38e24f665ae5db /src/VBox/GuestHost/OpenGL/packer/pack_shaders.c
parent58ed4748338f9466599adfc8a9171280ed99e23f (diff)
downloadVirtualBox-master.tar.gz
Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2.HEADVirtualBox-4.3.10master
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/packer/pack_shaders.c')
-rw-r--r--src/VBox/GuestHost/OpenGL/packer/pack_shaders.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/VBox/GuestHost/OpenGL/packer/pack_shaders.c b/src/VBox/GuestHost/OpenGL/packer/pack_shaders.c
index 36fc6bea..b788bd4d 100644
--- a/src/VBox/GuestHost/OpenGL/packer/pack_shaders.c
+++ b/src/VBox/GuestHost/OpenGL/packer/pack_shaders.c
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (C) 2009 Oracle Corporation
+ * Copyright (C) 2009-2012 Oracle Corporation
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
@@ -52,7 +52,7 @@ void PACK_APIENTRY crPackShaderSource(GLuint shader, GLsizei count, const char *
for (i=0; i<count; ++i)
{
- pLocalLength[i] = (length && (length[i]>=0)) ? length[i] : crStrlen(string[i])+1;
+ pLocalLength[i] = ((length && (length[i]>=0)) ? length[i] : crStrlen(string[i]))+1;
packet_length += pLocalLength[i];
}
@@ -80,7 +80,17 @@ void PACK_APIENTRY crPackShaderSource(GLuint shader, GLsizei count, const char *
{
if (string[i])
{
- crMemcpy(data_ptr, string[i], pLocalLength[i]);
+ if (length && (length[i]>=0))
+ {
+ /* include \0 in the string to make intel drivers happy */
+ crMemcpy(data_ptr, string[i], pLocalLength[i] - 1);
+ data_ptr[pLocalLength[i] - 1] = '\0';
+ }
+ else
+ {
+ /* the \0 s already in the string */
+ crMemcpy(data_ptr, string[i], pLocalLength[i]);
+ }
}
else
{
@@ -458,7 +468,7 @@ void PACK_APIENTRY crPackGetAttachedShaders(GLuint program, GLsizei maxCount, GL
CR_UNLOCK_PACKER_CONTEXT(pc);
}
-void PACK_APIENTRY crPackGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj, int * writeback)
+void PACK_APIENTRY crPackGetAttachedObjectsARB(VBoxGLhandleARB containerObj, GLsizei maxCount, GLsizei * count, VBoxGLhandleARB * obj, int * writeback)
{
CR_GET_PACKER_CONTEXT(pc);
unsigned char *data_ptr;
@@ -466,7 +476,7 @@ void PACK_APIENTRY crPackGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei
CR_GET_BUFFERED_POINTER(pc, 32);
WRITE_DATA(0, GLint, 32);
WRITE_DATA(4, GLenum, CR_GETATTACHEDOBJECTSARB_EXTEND_OPCODE);
- WRITE_DATA(8, GLhandleARB, containerObj);
+ WRITE_DATA(8, VBoxGLhandleARB, containerObj);
WRITE_DATA(12, GLsizei, maxCount);
WRITE_NETWORK_POINTER(16, (void *) count);
WRITE_NETWORK_POINTER(24, (void *) writeback);
@@ -474,7 +484,7 @@ void PACK_APIENTRY crPackGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei
CR_UNLOCK_PACKER_CONTEXT(pc);
}
-void PACK_APIENTRY crPackGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog, int * writeback)
+void PACK_APIENTRY crPackGetInfoLogARB(VBoxGLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog, int * writeback)
{
CR_GET_PACKER_CONTEXT(pc);
unsigned char *data_ptr;
@@ -482,7 +492,7 @@ void PACK_APIENTRY crPackGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsiz
CR_GET_BUFFERED_POINTER(pc, 32);
WRITE_DATA(0, GLint, 32);
WRITE_DATA(4, GLenum, CR_GETINFOLOGARB_EXTEND_OPCODE);
- WRITE_DATA(8, GLhandleARB, obj);
+ WRITE_DATA(8, VBoxGLhandleARB, obj);
WRITE_DATA(12, GLsizei, maxLength);
WRITE_NETWORK_POINTER(16, (void *) length);
WRITE_NETWORK_POINTER(24, (void *) writeback);