本文整理汇总了C++中crMemcpy函数的典型用法代码示例。如果您正苦于以下问题:C++ crMemcpy函数的具体用法?C++ crMemcpy怎么用?C++ crMemcpy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了crMemcpy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: crdlm_pointers_CompressedTexImage3DARB
int crdlm_pointers_CompressedTexImage3DARB(struct instanceCompressedTexImage3DARB *instance, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imagesize, const GLvoid *data)
{
unsigned int size = imagesize;
if (instance && size > 0) {
crMemcpy(instance->data, data, size);
}
return size;
}
开发者ID:L3oV1nc3,项目名称:VMGL,代码行数:10,代码来源:dlm_pointers.c
示例2: crUnpackClipPlane
void crUnpackClipPlane(PCrUnpackerState pState)
{
GLdouble equation[4];
CHECK_BUFFER_SIZE_STATIC(pState, 4 + sizeof(equation));
GLenum plane = READ_DATA(pState, 0, GLenum );
crMemcpy( equation, DATA_POINTER(pState, 4, GLdouble ), sizeof(equation) );
pState->pDispatchTbl->ClipPlane( plane, equation );
INCR_DATA_PTR(pState, sizeof( GLenum ) + 4*sizeof( GLdouble ));
}
开发者ID:mdaniel,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:11,代码来源:unpack_clipplane.cpp
示例3: crStateBufferSubDataARB
void STATE_APIENTRY
crStateBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data)
{
CRContext *g = GetCurrentContext();
CRBufferObjectState *b = &g->bufferobject;
CRBufferObject *obj;
CRStateBits *sb = GetCurrentBits();
CRBufferObjectBits *bb = &sb->bufferobject;
FLUSH();
if (g->current.inBeginEnd) {
crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
"glBufferSubDataARB called in begin/end");
return;
}
obj = crStateGetBoundBufferObject(target, b);
if (!obj)
{
crStateError(__LINE__, __FILE__, GL_INVALID_ENUM, "glBufferSubDataARB(target)");
return;
}
if (obj->id == 0) {
crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
"glBufferSubDataARB");
return;
}
if (obj->pointer) {
crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
"glBufferSubDataARB(buffer is mapped)");
return;
}
if (size < 0 || offset < 0 || (unsigned int)offset + size > obj->size) {
crStateError(__LINE__, __FILE__, GL_INVALID_OPERATION,
"glBufferSubDataARB(bad offset and/or size)");
return;
}
if (b->retainBufferData && obj->data) {
crMemcpy((char *) obj->data + offset, data, size);
}
DIRTY(bb->dirty, g->neg_bitid);
DIRTY(obj->dirty, g->neg_bitid);
/* grow dirty region */
if (offset + size > obj->dirtyStart + obj->dirtyLength)
obj->dirtyLength = offset + size;
if (offset < obj->dirtyStart)
obj->dirtyStart = offset;
}
开发者ID:LastRitter,项目名称:vbox-haiku,代码行数:54,代码来源:state_bufferobject.c
示例4: crdlm_pointers_ZPixCR
int crdlm_pointers_ZPixCR( struct instanceZPixCR *instance, GLsizei width,
GLsizei height, GLenum format, GLenum type,
GLenum ztype, GLint zparm, GLint length,
const GLvoid *pixels, CRClientState *c)
{
unsigned int size = length;
if (instance && size > 0) {
crMemcpy(instance->pixels,pixels,length);
}
return size;
}
开发者ID:L3oV1nc3,项目名称:VMGL,代码行数:12,代码来源:dlm_pointers.c
示例5: crPackCallListsSWAP
void PACK_APIENTRY crPackCallListsSWAP(GLint n, GLenum type,
const GLvoid *lists )
{
unsigned char *data_ptr;
int packet_length;
GLshort *shortPtr;
GLint *intPtr;
int i;
int bytesPerList = __gl_CallListsNumBytes( type );
int numBytes = bytesPerList * n;
if (numBytes < 0)
{
__PackError( __LINE__, __FILE__, GL_INVALID_ENUM,
"crPackCallLists(bad type)" );
return;
}
packet_length = sizeof( n ) +
sizeof( type ) +
numBytes;
data_ptr = (unsigned char *) crPackAlloc( packet_length );
WRITE_DATA( 0, GLint, SWAP32(n) );
WRITE_DATA( 4, GLenum, SWAP32(type) );
crMemcpy( data_ptr + 8, lists, numBytes );
shortPtr = (GLshort *) (data_ptr + 8);
intPtr = (GLint *) (data_ptr + 8);
if (bytesPerList > 1)
{
for ( i = 0 ; i < n ; i++)
{
switch( bytesPerList )
{
case 2:
*shortPtr = SWAP16(*shortPtr);
shortPtr+=1;
break;
case 4:
*intPtr = SWAP32(*intPtr);
intPtr+=1;
break;
}
}
}
crHugePacket( CR_CALLLISTS_OPCODE, data_ptr );
crPackFree( data_ptr );
}
开发者ID:boompig,项目名称:chromium,代码行数:52,代码来源:pack_swap_lists.c
示例6: crUnpackExtendProgramNamedParameter4fvNV
void crUnpackExtendProgramNamedParameter4fvNV(void)
{
GLenum id = READ_DATA(8, GLuint);
GLsizei len = READ_DATA(12, GLsizei);
GLfloat params[4];
GLubyte *name = crAlloc(len);
params[0] = READ_DATA(16, GLfloat);
params[1] = READ_DATA(20, GLfloat);
params[2] = READ_DATA(24, GLfloat);
params[3] = READ_DATA(28, GLfloat);
crMemcpy(name, DATA_POINTER(32, GLubyte), len);
cr_unpackDispatch.ProgramNamedParameter4fvNV(id, len, name, params);
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:13,代码来源:unpack_program.c
示例7: crUnpackExtendProgramNamedParameter4dNV
void crUnpackExtendProgramNamedParameter4dNV(void)
{
GLuint id = READ_DATA(8, GLuint);
GLsizei len = READ_DATA(12, GLsizei);
GLdouble params[4];
GLubyte *name = crAlloc (len);
params[0] = READ_DOUBLE(16);
params[1] = READ_DOUBLE(24);
params[2] = READ_DOUBLE(32);
params[3] = READ_DOUBLE(40);
crMemcpy(name, DATA_POINTER(48, GLubyte), len);
cr_unpackDispatch.ProgramNamedParameter4dNV(id, len, name, params[0], params[1], params[2], params[3]);
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:13,代码来源:unpack_program.c
示例8: crPackCompressedTexSubImage3DARBSWAP
void PACK_APIENTRY crPackCompressedTexSubImage3DARBSWAP( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imagesize, const GLvoid *data )
{
unsigned char *data_ptr;
int packet_length;
int isnull = (data == NULL);
/* All extended opcodes have their first 8 bytes predefined:
* the first four indicate the packet size, and the next four
* indicate the actual extended opcode.
*/
packet_length =
sizeof( GLenum) + /* extended opcode */
sizeof( target ) +
sizeof( level ) +
sizeof( xoffset ) +
sizeof( yoffset ) +
sizeof( zoffset ) +
sizeof( width ) +
sizeof( height ) +
sizeof( depth ) +
sizeof( format ) +
sizeof( imagesize ) +
sizeof( int ); /* isnull */
if (data)
{
packet_length += imagesize;
}
data_ptr = (unsigned char *) crPackAlloc( packet_length );
WRITE_DATA( 0, GLenum, SWAP32(CR_COMPRESSEDTEXSUBIMAGE3DARB_EXTEND_OPCODE) );
WRITE_DATA( 4, GLenum, SWAP32(target) );
WRITE_DATA( 8, GLint, SWAP32(level) );
WRITE_DATA( 12, GLint, SWAP32(xoffset) );
WRITE_DATA( 16, GLint, SWAP32(yoffset) );
WRITE_DATA( 20, GLint, SWAP32(zoffset) );
WRITE_DATA( 24, GLsizei, SWAP32(width) );
WRITE_DATA( 28, GLsizei, SWAP32(height) );
WRITE_DATA( 32, GLsizei, SWAP32(depth) );
WRITE_DATA( 36, GLenum, SWAP32(format) );
WRITE_DATA( 40, GLsizei, SWAP32(imagesize) );
WRITE_DATA( 44, int, SWAP32(isnull) );
if (data) {
crMemcpy( (void *)(data_ptr + 48), (void *)data, imagesize);
}
crHugePacket( CR_EXTEND_OPCODE, data_ptr );
crPackFree( data_ptr );
}
开发者ID:L3oV1nc3,项目名称:VMGL,代码行数:50,代码来源:pack_swap_texture.c
示例9: crPackDrawBuffers
void PACK_APIENTRY crPackDrawBuffers(GLsizei n, const GLenum *bufs)
{
CR_GET_PACKER_CONTEXT(pc);
unsigned char *data_ptr;
int packet_length = sizeof(int)+sizeof(GLenum)+sizeof(n) + n*sizeof(*bufs);
CR_GET_BUFFERED_POINTER(pc, packet_length);
WRITE_DATA_AI(int, packet_length);
WRITE_DATA_AI(GLenum, CR_DRAWBUFFERS_EXTEND_OPCODE);
WRITE_DATA_AI(GLsizei, n);
crMemcpy(data_ptr, bufs, n*sizeof(*bufs));
WRITE_OPCODE(pc, CR_EXTEND_OPCODE);
CR_UNLOCK_PACKER_CONTEXT(pc);
}
开发者ID:MadHacker217,项目名称:VirtualBox-OSE,代码行数:14,代码来源:pack_shaders.c
示例10: crStateGetPolygonStipple
void STATE_APIENTRY crStateGetPolygonStipple(PCRStateTracker pState, GLubyte *b )
{
CRContext *g = GetCurrentContext(pState);
CRPolygonState *poly = &(g->polygon);
if (g->current.inBeginEnd)
{
crStateError(pState, __LINE__, __FILE__, GL_INVALID_OPERATION,
"glGetPolygonStipple called in begin/end");
return;
}
crMemcpy((char*)b, (char*)poly->stipple, 128);
}
开发者ID:mdaniel,项目名称:virtualbox-org-svn-vbox-trunk,代码行数:14,代码来源:state_polygon.c
示例11: crPackAppendBuffer
void crPackAppendBuffer( const CRPackBuffer *src )
{
GET_PACKER_CONTEXT(pc);
const int num_data = crPackNumData(src);
const int num_opcode = crPackNumOpcodes(src);
CRASSERT(num_data >= 0);
CRASSERT(num_opcode >= 0);
/* don't append onto ourself! */
CRASSERT(pc->currentBuffer);
CRASSERT(pc->currentBuffer != src);
if (!crPackCanHoldBuffer(src))
{
if (src->holds_BeginEnd)
{
crWarning( "crPackAppendBuffer: overflowed the destination!" );
return;
}
else
crError( "crPackAppendBuffer: overflowed the destination!" );
}
/* Copy the buffer data/operands which are at the head of the buffer */
crMemcpy( pc->buffer.data_current, src->data_start, num_data );
pc->buffer.data_current += num_data;
/* Copy the buffer opcodes which are at the tail of the buffer */
CRASSERT( pc->buffer.opcode_current - num_opcode >= pc->buffer.opcode_end );
crMemcpy( pc->buffer.opcode_current + 1 - num_opcode, src->opcode_current + 1,
num_opcode );
pc->buffer.opcode_current -= num_opcode;
pc->buffer.holds_BeginEnd |= src->holds_BeginEnd;
pc->buffer.in_BeginEnd = src->in_BeginEnd;
pc->buffer.holds_List |= src->holds_List;
}
开发者ID:L3oV1nc3,项目名称:VMGL,代码行数:37,代码来源:pack_buffer.c
示例12: crPackDeleteProgramsARB
void PACK_APIENTRY crPackDeleteProgramsARB(GLsizei n, const GLuint *ids)
{
unsigned char *data_ptr;
int packet_length = sizeof(GLenum) + sizeof(n) + n * sizeof(*ids);
if (!ids)
return;
data_ptr = (unsigned char *) crPackAlloc(packet_length);
WRITE_DATA(0, GLenum, CR_DELETEPROGRAMSARB_EXTEND_OPCODE);
WRITE_DATA(4, GLsizei, n);
crMemcpy(data_ptr + 8, ids, n * sizeof(*ids));
crHugePacket(CR_EXTEND_OPCODE, data_ptr);
crPackFree(data_ptr);
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:15,代码来源:pack_program.c
示例13: crPackUniform4iv
void PACK_APIENTRY crPackUniform4iv(GLint location, GLsizei count, const GLint *value)
{
CR_GET_PACKER_CONTEXT(pc);
unsigned char *data_ptr;
int packet_length = sizeof(int)+sizeof(GLenum)+sizeof(location)+sizeof(count) + 4*count*sizeof(*value);
CR_GET_BUFFERED_POINTER(pc, packet_length);
WRITE_DATA_AI(int, packet_length);
WRITE_DATA_AI(GLenum, CR_UNIFORM4IV_EXTEND_OPCODE);
WRITE_DATA_AI(GLint, location);
WRITE_DATA_AI(GLsizei, count);
crMemcpy(data_ptr, value, 4*count*sizeof(*value));
WRITE_OPCODE(pc, CR_EXTEND_OPCODE);
CR_UNLOCK_PACKER_CONTEXT(pc);
}
开发者ID:MadHacker217,项目名称:VirtualBox-OSE,代码行数:15,代码来源:pack_shaders.c
示例14: crUnpackTexGendv
void crUnpackTexGendv( void )
{
GLenum coord = READ_DATA( sizeof( int ) + 0, GLenum );
GLenum pname = READ_DATA( sizeof( int ) + 4, GLenum );
GLdouble params[4];
unsigned int n_param = READ_DATA( 0, int ) - ( sizeof(int) + 8 );
if ( n_param > sizeof(params) )
crError( "crUnpackTexGendv: n_param=%d, expected <= %d\n", n_param,
(unsigned int)sizeof(params) );
crMemcpy( params, DATA_POINTER( sizeof( int ) + 8, GLdouble ), n_param );
cr_unpackDispatch.TexGendv( coord, pname, params );
INCR_VAR_PTR();
}
开发者ID:MadHacker217,项目名称:VirtualBox-OSE,代码行数:15,代码来源:unpack_texture.c
示例15: crNetworkPointerWrite
void crNetworkPointerWrite( CRNetworkPointer *dst, void *src )
{
/* init CRNetworkPointer with invalid values */
dst->ptrAlign[0] = 0xDeadBeef;
dst->ptrAlign[1] = 0xCafeBabe;
/* copy the pointer's value into the CRNetworkPointer */
crMemcpy( dst, &src, sizeof(src) );
/* if either assertion fails, it probably means that a packer function
* (which returns a value) was called without setting up the writeback
* pointer, or something like that.
*/
CRASSERT(dst->ptrAlign[0] != 0xffffffff);
CRASSERT(dst->ptrAlign[0] != 0xDeadBeef);
}
开发者ID:LastRitter,项目名称:vbox-haiku,代码行数:15,代码来源:pack_buffer.c
示例16: crPackDrawRangeElements
void PACK_APIENTRY
crPackDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count,
GLenum type, const GLvoid *indices)
{
unsigned char *data_ptr, *start_ptr;
int packet_length = sizeof(int) + sizeof(mode) + sizeof(start)
+ sizeof(end) + sizeof(count) + sizeof(type) + sizeof(GLuint);
GLsizei indexsize;
#ifdef CR_ARB_vertex_buffer_object
CRBufferObject *elementsBuffer = crStateGetCurrent()->bufferobject.elementsBuffer;
packet_length += sizeof(GLint);
if (elementsBuffer && elementsBuffer->id)
{
/*@todo not sure it's possible, and not sure what to do*/
if (!elementsBuffer->data)
{
crWarning("crPackDrawElements: trying to use bound but empty elements buffer, ignoring.");
return;
}
indexsize = 0;
}
else
#endif
{
indexsize = crPackElementsIndexSize(type);
}
packet_length += count * indexsize;
start_ptr = data_ptr = (unsigned char *) crPackAlloc(packet_length);
WRITE_DATA_AI(GLenum, CR_DRAWRANGEELEMENTS_EXTEND_OPCODE);
WRITE_DATA_AI(GLenum, mode);
WRITE_DATA_AI(GLuint, start);
WRITE_DATA_AI(GLuint, end);
WRITE_DATA_AI(GLsizei, count);
WRITE_DATA_AI(GLenum, type);
WRITE_DATA_AI(GLuint, (GLuint) ((uintptr_t) indices));
#ifdef CR_ARB_vertex_buffer_object
WRITE_DATA_AI(GLint, (GLint) (indexsize>0));
#endif
if (indexsize>0)
{
crMemcpy(data_ptr, indices, count * indexsize);
}
crHugePacket(CR_EXTEND_OPCODE, start_ptr);
crPackFree(start_ptr);
}
开发者ID:MadHacker217,项目名称:VirtualBox-OSE,代码行数:48,代码来源:pack_client.c
示例17: crPackDeleteBuffersARBSWAP
void PACK_APIENTRY
crPackDeleteBuffersARBSWAP(GLsizei n, const GLuint * buffers)
{
unsigned char *data_ptr;
int packet_length = sizeof(GLenum) + sizeof(n) + n * sizeof(*buffers);
if (!buffers)
return;
data_ptr = (unsigned char *) crPackAlloc(packet_length);
WRITE_DATA( 0, GLenum, SWAP32(CR_DELETEBUFFERSARB_EXTEND_OPCODE) );
WRITE_DATA( 4, GLsizei, SWAP32(n) );
crMemcpy( data_ptr + 8, buffers, n * sizeof(*buffers) );
crHugePacket( CR_EXTEND_OPCODE, data_ptr );
crPackFree( data_ptr );
}
开发者ID:alown,项目名称:chromium,代码行数:16,代码来源:pack_bufferobject_swap.c
示例18: crPackDeleteFramebuffersEXT
void PACK_APIENTRY
crPackDeleteFramebuffersEXT(GLsizei n, const GLuint * framebuffers)
{
unsigned char *data_ptr;
int packet_length = sizeof(GLenum) + sizeof(n) + n*sizeof(*framebuffers);
if (!framebuffers)
return;
data_ptr = (unsigned char *) crPackAlloc(packet_length);
WRITE_DATA(0, GLenum, CR_DELETEFRAMEBUFFERSEXT_EXTEND_OPCODE);
WRITE_DATA(4, GLsizei, n);
crMemcpy(data_ptr + 8, framebuffers, n* sizeof(*framebuffers));
crHugePacket(CR_EXTEND_OPCODE, data_ptr);
crPackFree(data_ptr);
}
开发者ID:MadHacker217,项目名称:VirtualBox-OSE,代码行数:16,代码来源:pack_framebuffer.c
示例19: crPackLoadProgramNV
void PACK_APIENTRY crPackLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program)
{
const int packet_length = 20 + len;
unsigned char *data_ptr;
CR_GET_PACKER_CONTEXT(pc);
CR_GET_BUFFERED_POINTER(pc, packet_length);
WRITE_DATA(0, int, packet_length);
WRITE_DATA(4, GLenum, CR_LOADPROGRAMNV_EXTEND_OPCODE);
WRITE_DATA(8, GLenum, target);
WRITE_DATA(12, GLuint, id);
WRITE_DATA(16, GLsizei, len);
crMemcpy((void *) (data_ptr + 20), program, len);
WRITE_OPCODE(pc, CR_EXTEND_OPCODE);
CR_UNLOCK_PACKER_CONTEXT(pc);
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:16,代码来源:pack_program.c
示例20: crPackProgramStringARB
void PACK_APIENTRY crPackProgramStringARB(GLenum target, GLenum format, GLsizei len, const void *string)
{
const int packet_length = 20 + len;
unsigned char *data_ptr;
CR_GET_PACKER_CONTEXT(pc);
CR_GET_BUFFERED_POINTER(pc, packet_length);
WRITE_DATA(0, int, packet_length);
WRITE_DATA(4, GLenum, CR_PROGRAMSTRINGARB_EXTEND_OPCODE);
WRITE_DATA(8, GLenum, target);
WRITE_DATA(12, GLuint, format);
WRITE_DATA(16, GLsizei, len);
crMemcpy((void *) (data_ptr + 20), string, len);
WRITE_OPCODE(pc, CR_EXTEND_OPCODE);
CR_UNLOCK_PACKER_CONTEXT(pc);
}
开发者ID:svn2github,项目名称:virtualbox,代码行数:16,代码来源:pack_program.c
注:本文中的crMemcpy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论