82
83
return &ctx->CopyWriteBuffer;
86
#if FEATURE_EXT_transform_feedback
87
case GL_TRANSFORM_FEEDBACK_BUFFER:
88
if (ctx->Extensions.EXT_transform_feedback) {
89
return &ctx->TransformFeedback.CurrentBuffer;
583
591
bindTarget = get_buffer_target(ctx, target);
584
592
if (!bindTarget) {
585
_mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferARB(target 0x%x)");
593
_mesa_error(ctx, GL_INVALID_ENUM, "glBindBufferARB(target 0x%x)", target);
1377
1385
bufObj = get_buffer(ctx, target);
1379
_mesa_error(ctx, GL_INVALID_ENUM, "GetBufferParameterivARB(target)" );
1387
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameterivARB(target)" );
1382
1390
if (!_mesa_is_bufferobj(bufObj)) {
1383
_mesa_error(ctx, GL_INVALID_OPERATION, "GetBufferParameterivARB" );
1391
_mesa_error(ctx, GL_INVALID_OPERATION, "glGetBufferParameterivARB" );
1387
1395
switch (pname) {
1388
1396
case GL_BUFFER_SIZE_ARB:
1389
1397
*params = (GLint) bufObj->Size;
1391
1399
case GL_BUFFER_USAGE_ARB:
1392
1400
*params = bufObj->Usage;
1394
1402
case GL_BUFFER_ACCESS_ARB:
1395
1403
*params = simplified_access_mode(bufObj->AccessFlags);
1397
1405
case GL_BUFFER_MAPPED_ARB:
1398
1406
*params = _mesa_bufferobj_mapped(bufObj);
1408
case GL_BUFFER_ACCESS_FLAGS:
1409
if (ctx->VersionMajor < 3)
1411
*params = bufObj->AccessFlags;
1413
case GL_BUFFER_MAP_OFFSET:
1414
if (ctx->VersionMajor < 3)
1416
*params = (GLint) bufObj->Offset;
1418
case GL_BUFFER_MAP_LENGTH:
1419
if (ctx->VersionMajor < 3)
1421
*params = (GLint) bufObj->Length;
1401
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameterivARB(pname)");
1424
; /* fall-through */
1428
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameterivARB(pname=%s)",
1429
_mesa_lookup_enum_by_nr(pname));
1419
1445
bufObj = get_buffer(ctx, target);
1421
_mesa_error(ctx, GL_INVALID_ENUM, "GetBufferParameteri64v(target)" );
1447
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameteri64v(target)" );
1424
1450
if (!_mesa_is_bufferobj(bufObj)) {
1425
_mesa_error(ctx, GL_INVALID_OPERATION, "GetBufferParameteri64v" );
1451
_mesa_error(ctx, GL_INVALID_OPERATION, "glGetBufferParameteri64v" );
1429
1455
switch (pname) {
1430
1456
case GL_BUFFER_SIZE_ARB:
1431
1457
*params = bufObj->Size;
1433
1459
case GL_BUFFER_USAGE_ARB:
1434
1460
*params = bufObj->Usage;
1436
1462
case GL_BUFFER_ACCESS_ARB:
1437
1463
*params = simplified_access_mode(bufObj->AccessFlags);
1465
case GL_BUFFER_ACCESS_FLAGS:
1466
if (ctx->VersionMajor < 3)
1468
*params = bufObj->AccessFlags;
1439
1470
case GL_BUFFER_MAPPED_ARB:
1440
1471
*params = _mesa_bufferobj_mapped(bufObj);
1473
case GL_BUFFER_MAP_OFFSET:
1474
if (ctx->VersionMajor < 3)
1476
*params = bufObj->Offset;
1478
case GL_BUFFER_MAP_LENGTH:
1479
if (ctx->VersionMajor < 3)
1481
*params = bufObj->Length;
1443
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameteri64v(pname)");
1484
; /* fall-through */
1488
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBufferParameteri64v(pname=%s)",
1489
_mesa_lookup_enum_by_nr(pname));
1510
1554
if (readOffset < 0) {
1511
1555
_mesa_error(ctx, GL_INVALID_VALUE,
1512
"glCopyBuffserSubData(readOffset = %d)", readOffset);
1556
"glCopyBuffserSubData(readOffset = %d)", (int) readOffset);
1516
1560
if (writeOffset < 0) {
1517
1561
_mesa_error(ctx, GL_INVALID_VALUE,
1518
"glCopyBuffserSubData(writeOffset = %d)", writeOffset);
1562
"glCopyBuffserSubData(writeOffset = %d)", (int) writeOffset);
1522
1566
if (readOffset + size > src->Size) {
1523
1567
_mesa_error(ctx, GL_INVALID_VALUE,
1524
1568
"glCopyBuffserSubData(readOffset + size = %d)",
1569
(int) (readOffset + size));
1529
1573
if (writeOffset + size > dst->Size) {
1530
1574
_mesa_error(ctx, GL_INVALID_VALUE,
1531
1575
"glCopyBuffserSubData(writeOffset + size = %d)",
1576
(int) (writeOffset + size));
1574
1618
if (offset < 0) {
1575
1619
_mesa_error(ctx, GL_INVALID_VALUE,
1576
"glMapBufferRange(offset = %ld)", offset);
1620
"glMapBufferRange(offset = %ld)", (long)offset);
1580
1624
if (length < 0) {
1581
1625
_mesa_error(ctx, GL_INVALID_VALUE,
1582
"glMapBufferRange(length = %ld)", length);
1626
"glMapBufferRange(length = %ld)", (long)length);
1665
1709
if (offset < 0) {
1666
1710
_mesa_error(ctx, GL_INVALID_VALUE,
1667
"glMapBufferRange(offset = %ld)", offset);
1711
"glMapBufferRange(offset = %ld)", (long)offset);
1671
1715
if (length < 0) {
1672
1716
_mesa_error(ctx, GL_INVALID_VALUE,
1673
"glMapBufferRange(length = %ld)", length);
1717
"glMapBufferRange(length = %ld)", (long)length);
1703
1747
if (offset + length > bufObj->Length) {
1704
1748
_mesa_error(ctx, GL_INVALID_VALUE,
1705
"glMapBufferRange(offset %ld + length %ld > mapped length %ld)",
1706
offset, length, bufObj->Length);
1749
"glMapBufferRange(offset %ld + length %ld > mapped length %ld)",
1750
(long)offset, (long)length, (long)bufObj->Length);
1881
1925
bufObj->Purgeable = GL_FALSE;
1883
retval = GL_RETAINED_APPLE;
1884
1928
if (ctx->Driver.BufferObjectUnpurgeable)
1885
1929
retval = ctx->Driver.BufferObjectUnpurgeable(ctx, bufObj, option);
1911
1955
bufObj->Purgeable = GL_FALSE;
1913
retval = GL_RETAINED_APPLE;
1914
1958
if (ctx->Driver.RenderObjectUnpurgeable)
1915
1959
retval = ctx->Driver.RenderObjectUnpurgeable(ctx, bufObj, option);
1941
1985
bufObj->Purgeable = GL_FALSE;
1943
retval = GL_RETAINED_APPLE;
1944
1988
if (ctx->Driver.TextureObjectUnpurgeable)
1945
1989
retval = ctx->Driver.TextureObjectUnpurgeable(ctx, bufObj, option);