void AbstractFramebuffer::readImplementationRobustness(const Range2Di& rectangle, const ColorFormat format, const ColorType type, const std::size_t dataSize, GLvoid* const data) { #ifndef MAGNUM_TARGET_GLES glReadnPixelsARB(rectangle.min().x(), rectangle.min().y(), rectangle.sizeX(), rectangle.sizeY(), GLenum(format), GLenum(type), dataSize, data); #elif !defined(CORRADE_TARGET_NACL) glReadnPixelsEXT(rectangle.min().x(), rectangle.min().y(), rectangle.sizeX(), rectangle.sizeY(), GLenum(format), GLenum(type), dataSize, data); #else static_cast<void>(rectangle); static_cast<void>(format); static_cast<void>(type); static_cast<void>(dataSize); static_cast<void>(data); CORRADE_ASSERT_UNREACHABLE(); #endif }
void RangeTest::size() { const Range1Di line(34, 47); const Range2Di rect({34, 23}, {47, 30}); const Range3Di cube({34, 23, -17}, {47, 30, 12}); CORRADE_COMPARE(line.size(), 13); CORRADE_COMPARE(rect.size(), Vector2i(13, 7)); CORRADE_COMPARE(cube.size(), Vector3i(13, 7, 29)); CORRADE_COMPARE(rect.sizeX(), 13); CORRADE_COMPARE(rect.sizeY(), 7); CORRADE_COMPARE(cube.sizeX(), 13); CORRADE_COMPARE(cube.sizeY(), 7); CORRADE_COMPARE(cube.sizeZ(), 29); }
void AbstractFramebuffer::readImplementationDefault(const Range2Di& rectangle, const ColorFormat format, const ColorType type, const std::size_t, GLvoid* const data) { glReadPixels(rectangle.min().x(), rectangle.min().y(), rectangle.sizeX(), rectangle.sizeY(), GLenum(format), GLenum(type), data); }
void AbstractFramebuffer::invalidateImplementationDSA(const GLsizei count, const GLenum* const attachments, const Range2Di& rectangle) { glInvalidateNamedFramebufferSubData(_id, count, attachments, rectangle.left(), rectangle.bottom(), rectangle.sizeX(), rectangle.sizeY()); }
void AbstractFramebuffer::invalidateImplementationDefault(const GLsizei count, const GLenum* const attachments, const Range2Di& rectangle) { glInvalidateSubFramebuffer(GLenum(bindInternal()), count, attachments, rectangle.left(), rectangle.bottom(), rectangle.sizeX(), rectangle.sizeY()); }