more work

This commit is contained in:
ZappoMan 2015-01-19 13:34:09 -08:00
parent 439a1c0495
commit bddb7856af
12 changed files with 150 additions and 67 deletions

View file

@ -195,7 +195,7 @@ void AudioScope::renderLineStrip(int id, const glm::vec4& color, int x, int y, i
geometryCache->updateVertices(id, points, color); geometryCache->updateVertices(id, points, color);
geometryCache->renderVertices(GL_LINE_STRIP, id); geometryCache->renderVertices(gpu::LINE_STRIP, id);
glColor4f(1, 1, 1, 1); glColor4f(1, 1, 1, 1);
} }

View file

@ -575,7 +575,6 @@ void Avatar::renderBillboard() {
DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, glm::vec4(1.0f, 1.0f, 1.0f, 1.0f)); DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, glm::vec4(1.0f, 1.0f, 1.0f, 1.0f));
glPopMatrix(); glPopMatrix();
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@ -990,7 +989,7 @@ void Avatar::renderJointConnectingCone(glm::vec3 position1, glm::vec3 position2,
// TODO: this is really inefficient constantly recreating these vertices buffers. It would be // TODO: this is really inefficient constantly recreating these vertices buffers. It would be
// better if the avatars cached these buffers for each of the joints they are rendering // better if the avatars cached these buffers for each of the joints they are rendering
geometryCache->updateVertices(_jointConesID, points, color); geometryCache->updateVertices(_jointConesID, points, color);
geometryCache->renderVertices(GL_TRIANGLES, _jointConesID); geometryCache->renderVertices(gpu::TRIANGLES, _jointConesID);
} }
} }

View file

@ -367,7 +367,7 @@ void SkeletonModel::renderJointConstraints(int jointIndex) {
// TODO: this is really inefficient constantly recreating these vertices buffers. It would be // TODO: this is really inefficient constantly recreating these vertices buffers. It would be
// better if the skeleton model cached these buffers for each of the joints they are rendering // better if the skeleton model cached these buffers for each of the joints they are rendering
geometryCache->updateVertices(_triangleFanID, points, color); geometryCache->updateVertices(_triangleFanID, points, color);
geometryCache->renderVertices(GL_TRIANGLE_FAN, _triangleFanID); geometryCache->renderVertices(gpu::TRIANGLE_FAN, _triangleFanID);
} }
glPopMatrix(); glPopMatrix();

View file

@ -767,7 +767,7 @@ void ApplicationOverlay::renderMagnifier(glm::vec2 magPos, float sizeMult, bool
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
glLineWidth(1.0f); glLineWidth(1.0f);
//Outer Line //Outer Line
geometryCache->renderVertices(GL_LINE_STRIP, _magnifierBorder); geometryCache->renderVertices(gpu::LINE_STRIP, _magnifierBorder);
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
} }
glColor4f(1.0f, 1.0f, 1.0f, _alpha); glColor4f(1.0f, 1.0f, 1.0f, _alpha);
@ -970,7 +970,7 @@ void ApplicationOverlay::renderDomainConnectionStatusBorder() {
glLineWidth(CONNECTION_STATUS_BORDER_LINE_WIDTH); glLineWidth(CONNECTION_STATUS_BORDER_LINE_WIDTH);
geometryCache->renderVertices(GL_LINE_STRIP, _domainStatusBorder); geometryCache->renderVertices(gpu::LINE_STRIP, _domainStatusBorder);
} }
} }

View file

@ -164,7 +164,7 @@ void Circle3DOverlay::render(RenderArgs* args) {
geometryCache->updateVertices(_quadVerticesID, points, color); geometryCache->updateVertices(_quadVerticesID, points, color);
} }
geometryCache->renderVertices(GL_QUAD_STRIP, _quadVerticesID); geometryCache->renderVertices(gpu::QUAD_STRIP, _quadVerticesID);
} else { } else {
if (_lineVerticesID == GeometryCache::UNKNOWN_ID) { if (_lineVerticesID == GeometryCache::UNKNOWN_ID) {
@ -203,9 +203,9 @@ void Circle3DOverlay::render(RenderArgs* args) {
} }
if (getIsDashedLine()) { if (getIsDashedLine()) {
geometryCache->renderVertices(GL_LINES, _lineVerticesID); geometryCache->renderVertices(gpu::LINES, _lineVerticesID);
} else { } else {
geometryCache->renderVertices(GL_LINE_STRIP, _lineVerticesID); geometryCache->renderVertices(gpu::LINE_STRIP, _lineVerticesID);
} }
} }
@ -280,9 +280,9 @@ void Circle3DOverlay::render(RenderArgs* args) {
geometryCache->updateVertices(_minorTicksVerticesID, minorPoints, minorColor); geometryCache->updateVertices(_minorTicksVerticesID, minorPoints, minorColor);
} }
geometryCache->renderVertices(GL_LINES, _majorTicksVerticesID); geometryCache->renderVertices(gpu::LINES, _majorTicksVerticesID);
geometryCache->renderVertices(GL_LINES, _minorTicksVerticesID); geometryCache->renderVertices(gpu::LINES, _minorTicksVerticesID);
} }

View file

@ -114,7 +114,8 @@ void ImageOverlay::render(RenderArgs* args) {
glm::vec2 texCoordTopLeft(x, 1.0f - y); glm::vec2 texCoordTopLeft(x, 1.0f - y);
glm::vec2 texCoordBottomRight(x + w, 1.0f - (y + h)); glm::vec2 texCoordBottomRight(x + w, 1.0f - (y + h));
if (_renderImage) { // if for some reason our image is not over 0 width or height, don't attempt to render the image
if (_renderImage && imageWidth > 0 && imageHeight > 0) {
DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, quadColor); DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, quadColor);
} else { } else {
DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, quadColor); DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, quadColor);

View file

@ -100,7 +100,7 @@ void Rectangle3DOverlay::render(RenderArgs* args) {
_previousHalfDimensions = halfDimensions; _previousHalfDimensions = halfDimensions;
} }
geometryCache->renderVertices(GL_LINE_STRIP, _geometryCacheID); geometryCache->renderVertices(gpu::LINE_STRIP, _geometryCacheID);
} }
} }

View file

@ -45,7 +45,9 @@ enum Primitive {
LINE_STRIP, LINE_STRIP,
TRIANGLES, TRIANGLES,
TRIANGLE_STRIP, TRIANGLE_STRIP,
TRIANGLE_FAN,
QUADS, QUADS,
QUAD_STRIP,
NUM_PRIMITIVES, NUM_PRIMITIVES,
}; };

View file

@ -93,7 +93,9 @@ static const GLenum _primitiveToGLmode[NUM_PRIMITIVES] = {
GL_LINE_STRIP, GL_LINE_STRIP,
GL_TRIANGLES, GL_TRIANGLES,
GL_TRIANGLE_STRIP, GL_TRIANGLE_STRIP,
GL_TRIANGLE_FAN,
GL_QUADS, GL_QUADS,
GL_QUAD_STRIP,
}; };
static const GLenum _elementTypeToGLType[NUM_TYPES]= { static const GLenum _elementTypeToGLType[NUM_TYPES]= {

View file

@ -607,81 +607,149 @@ void GeometryCache::renderGrid(int x, int y, int width, int height, int rows, in
} }
void GeometryCache::updateVertices(int id, const QVector<glm::vec2>& points, const glm::vec4& color) { void GeometryCache::updateVertices(int id, const QVector<glm::vec2>& points, const glm::vec4& color) {
BufferDetails& details = _registeredVertices[id]; qDebug() << "GeometryCache::updateVertices(id=" << id <<")...";
BatchItemDetails& details = _registeredVertices[id];
if (details.buffer.isCreated()) { if (details.isCreated) {
details.buffer.destroy(); details.clear();
#ifdef WANT_DEBUG #ifdef WANT_DEBUG
qDebug() << "updateVertices()... RELEASING REGISTERED"; qDebug() << "updateVertices()... RELEASING REGISTERED";
#endif // def WANT_DEBUG #endif // def WANT_DEBUG
} }
const int FLOATS_PER_VERTEX = 2; const int FLOATS_PER_VERTEX = 2;
details.isCreated = true;
details.vertices = points.size(); details.vertices = points.size();
details.vertexSize = FLOATS_PER_VERTEX; details.vertexSize = FLOATS_PER_VERTEX;
gpu::BufferPointer verticesBuffer(new gpu::Buffer());
gpu::BufferPointer colorBuffer(new gpu::Buffer());
gpu::Stream::FormatPointer streamFormat(new gpu::Stream::Format());
gpu::BufferStreamPointer stream(new gpu::BufferStream());
details.verticesBuffer = verticesBuffer;
details.colorBuffer = colorBuffer;
details.streamFormat = streamFormat;
details.stream = stream;
details.streamFormat->setAttribute(gpu::Stream::POSITION, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::POS_XYZ), 0);
details.streamFormat->setAttribute(gpu::Stream::COLOR, 1, gpu::Element(gpu::VEC4, gpu::UINT8, gpu::RGBA));
details.stream->addBuffer(details.verticesBuffer, 0, details.streamFormat->getChannels().at(0)._stride);
details.stream->addBuffer(details.colorBuffer, 0, details.streamFormat->getChannels().at(1)._stride);
details.vertices = points.size();
details.vertexSize = FLOATS_PER_VERTEX;
int compactColor = ((int(color.x * 255.0f) & 0xFF)) |
((int(color.y * 255.0f) & 0xFF) << 8) |
((int(color.z * 255.0f) & 0xFF) << 16) |
((int(color.w * 255.0f) & 0xFF) << 24);
GLfloat* vertexData = new GLfloat[details.vertices * FLOATS_PER_VERTEX]; GLfloat* vertexData = new GLfloat[details.vertices * FLOATS_PER_VERTEX];
GLfloat* vertex = vertexData; GLfloat* vertex = vertexData;
int* colorData = new int[details.vertices];
int* colorDataAt = colorData;
foreach (const glm::vec2& point, points) { foreach (const glm::vec2& point, points) {
*(vertex++) = point.x; *(vertex++) = point.x;
*(vertex++) = point.y; *(vertex++) = point.y;
*(colorDataAt++) = compactColor;
} }
details.buffer.create(); details.verticesBuffer->append(FLOATS_PER_VERTEX * details.vertices, (gpu::Buffer::Byte*) vertexData);
details.buffer.setUsagePattern(QOpenGLBuffer::StaticDraw); details.colorBuffer->append(sizeof(int) * details.vertices, (gpu::Buffer::Byte*) colorData);
details.buffer.bind();
details.buffer.allocate(vertexData, details.vertices * FLOATS_PER_VERTEX * sizeof(GLfloat));
delete[] vertexData;
#ifdef WANT_DEBUG
qDebug() << "new registered vertices buffer made -- _registeredVertices.size():" << _registeredVertices.size();
#endif
}
void GeometryCache::updateVertices(int id, const QVector<glm::vec3>& points, const glm::vec4& color) {
BufferDetails& details = _registeredVertices[id];
if (details.buffer.isCreated()) {
details.buffer.destroy();
#ifdef WANT_DEBUG
qDebug() << "updateVertices()... RELEASING REGISTERED";
#endif // def WANT_DEBUG
}
const int FLOATS_PER_VERTEX = 3;
details.vertices = points.size();
details.vertexSize = FLOATS_PER_VERTEX;
GLfloat* vertexData = new GLfloat[details.vertices * FLOATS_PER_VERTEX];
GLfloat* vertex = vertexData;
foreach (const glm::vec3& point, points) {
*(vertex++) = point.x;
*(vertex++) = point.y;
*(vertex++) = point.z;
}
details.buffer.create();
details.buffer.setUsagePattern(QOpenGLBuffer::StaticDraw);
details.buffer.bind();
details.buffer.allocate(vertexData, details.vertices * FLOATS_PER_VERTEX * sizeof(GLfloat));
delete[] vertexData; delete[] vertexData;
delete[] colorData;
#ifdef WANT_DEBUG #ifdef WANT_DEBUG
qDebug() << "new registered linestrip buffer made -- _registeredVertices.size():" << _registeredVertices.size(); qDebug() << "new registered linestrip buffer made -- _registeredVertices.size():" << _registeredVertices.size();
#endif #endif
} }
void GeometryCache::renderVertices(GLenum mode, int id) { void GeometryCache::updateVertices(int id, const QVector<glm::vec3>& points, const glm::vec4& color) {
BufferDetails& details = _registeredVertices[id]; qDebug() << "GeometryCache::updateVertices(id=" << id <<")...";
if (details.buffer.isCreated()) { BatchItemDetails& details = _registeredVertices[id];
details.buffer.bind();
glEnableClientState(GL_VERTEX_ARRAY); if (details.isCreated) {
glVertexPointer(details.vertexSize, GL_FLOAT, 0, 0); details.clear();
glDrawArrays(mode, 0, details.vertices); #ifdef WANT_DEBUG
qDebug() << "updateVertices()... RELEASING REGISTERED";
#endif // def WANT_DEBUG
}
const int FLOATS_PER_VERTEX = 3;
details.isCreated = true;
details.vertices = points.size();
details.vertexSize = FLOATS_PER_VERTEX;
gpu::BufferPointer verticesBuffer(new gpu::Buffer());
gpu::BufferPointer colorBuffer(new gpu::Buffer());
gpu::Stream::FormatPointer streamFormat(new gpu::Stream::Format());
gpu::BufferStreamPointer stream(new gpu::BufferStream());
details.verticesBuffer = verticesBuffer;
details.colorBuffer = colorBuffer;
details.streamFormat = streamFormat;
details.stream = stream;
details.streamFormat->setAttribute(gpu::Stream::POSITION, 0, gpu::Element(gpu::VEC3, gpu::FLOAT, gpu::POS_XYZ), 0);
details.streamFormat->setAttribute(gpu::Stream::COLOR, 1, gpu::Element(gpu::VEC4, gpu::UINT8, gpu::RGBA));
details.stream->addBuffer(details.verticesBuffer, 0, details.streamFormat->getChannels().at(0)._stride);
details.stream->addBuffer(details.colorBuffer, 0, details.streamFormat->getChannels().at(1)._stride);
details.vertices = points.size();
details.vertexSize = FLOATS_PER_VERTEX;
int compactColor = ((int(color.x * 255.0f) & 0xFF)) |
((int(color.y * 255.0f) & 0xFF) << 8) |
((int(color.z * 255.0f) & 0xFF) << 16) |
((int(color.w * 255.0f) & 0xFF) << 24);
GLfloat* vertexData = new GLfloat[details.vertices * FLOATS_PER_VERTEX];
GLfloat* vertex = vertexData;
int* colorData = new int[details.vertices];
int* colorDataAt = colorData;
foreach (const glm::vec3& point, points) {
*(vertex++) = point.x;
*(vertex++) = point.y;
*(vertex++) = point.z;
*(colorDataAt++) = compactColor;
}
details.verticesBuffer->append(FLOATS_PER_VERTEX * details.vertices, (gpu::Buffer::Byte*) vertexData);
details.colorBuffer->append(sizeof(int) * details.vertices, (gpu::Buffer::Byte*) colorData);
delete[] vertexData;
delete[] colorData;
#ifdef WANT_DEBUG
qDebug() << "new registered linestrip buffer made -- _registeredVertices.size():" << _registeredVertices.size();
#endif
}
void GeometryCache::renderVertices(gpu::Primitive primitiveType, int id) {
qDebug() << "GeometryCache::renderVertices(id=" << id <<")...";
BatchItemDetails& details = _registeredVertices[id];
if (details.isCreated) {
gpu::Batch batch;
batch.setInputFormat(details.streamFormat);
batch.setInputStream(0, *details.stream);
batch.draw(primitiveType, details.vertices, 0);
gpu::GLBackend::renderBatch(batch);
glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
details.buffer.release(); glDisableClientState(GL_COLOR_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
} }
} }
@ -897,6 +965,7 @@ void GeometryCache::renderWireCube(float size, const glm::vec4& color) {
} }
void GeometryCache::renderBevelCornersRect(int x, int y, int width, int height, int bevelDistance, const glm::vec4& color, int id) { void GeometryCache::renderBevelCornersRect(int x, int y, int width, int height, int bevelDistance, const glm::vec4& color, int id) {
qDebug() << "GeometryCache::renderBevelCornersRect(id=" << id <<")...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec3Pair key(glm::vec3(x, y, 0.0f), glm::vec3(width, height, bevelDistance)); Vec3Pair key(glm::vec3(x, y, 0.0f), glm::vec3(width, height, bevelDistance));
BatchItemDetails& details = registered ? _registeredBevelRects[id] : _bevelRects[key]; BatchItemDetails& details = registered ? _registeredBevelRects[id] : _bevelRects[key];
@ -1004,6 +1073,7 @@ void GeometryCache::renderBevelCornersRect(int x, int y, int width, int height,
} }
void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxCorner, const glm::vec4& color, int id) { void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxCorner, const glm::vec4& color, int id) {
qDebug() << "GeometryCache::renderQuad(vec2,id=" << id <<")...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec2Pair key(minCorner, maxCorner); Vec2Pair key(minCorner, maxCorner);
BatchItemDetails& details = registered ? _registeredQuad2D[id] : _quad2D[key]; BatchItemDetails& details = registered ? _registeredQuad2D[id] : _quad2D[key];
@ -1087,6 +1157,7 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC
const glm::vec2& texCoordMinCorner, const glm::vec2& texCoordMaxCorner, const glm::vec2& texCoordMinCorner, const glm::vec2& texCoordMaxCorner,
const glm::vec4& color, int id) { const glm::vec4& color, int id) {
qDebug() << "GeometryCache::renderQuad(vec2/texture,id=" << id <<")...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec2PairPair key(Vec2Pair(minCorner, maxCorner), Vec2Pair(texCoordMinCorner, texCoordMaxCorner)); Vec2PairPair key(Vec2Pair(minCorner, maxCorner), Vec2Pair(texCoordMinCorner, texCoordMaxCorner));
BatchItemDetails& details = registered ? _registeredQuad2DTextures[id] : _quad2DTextures[key]; BatchItemDetails& details = registered ? _registeredQuad2DTextures[id] : _quad2DTextures[key];
@ -1177,6 +1248,7 @@ void GeometryCache::renderQuad(const glm::vec2& minCorner, const glm::vec2& maxC
} }
void GeometryCache::renderQuad(const glm::vec3& minCorner, const glm::vec3& maxCorner, const glm::vec4& color, int id) { void GeometryCache::renderQuad(const glm::vec3& minCorner, const glm::vec3& maxCorner, const glm::vec4& color, int id) {
qDebug() << "GeometryCache::renderQuad(vec3,id=" << id <<")...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec3Pair key(minCorner, maxCorner); Vec3Pair key(minCorner, maxCorner);
BatchItemDetails& details = registered ? _registeredQuad3D[id] : _quad3D[key]; BatchItemDetails& details = registered ? _registeredQuad3D[id] : _quad3D[key];
@ -1464,6 +1536,7 @@ GeometryCache::BatchItemDetails::BatchItemDetails() :
isCreated(false) isCreated(false)
{ {
population++; population++;
qDebug() << "BatchItemDetails()... population:" << population << "**********************************";
} }
GeometryCache::BatchItemDetails::BatchItemDetails(const GeometryCache::BatchItemDetails& other) : GeometryCache::BatchItemDetails::BatchItemDetails(const GeometryCache::BatchItemDetails& other) :
@ -1476,12 +1549,13 @@ GeometryCache::BatchItemDetails::BatchItemDetails(const GeometryCache::BatchItem
isCreated(other.isCreated) isCreated(other.isCreated)
{ {
population++; population++;
qDebug() << "BatchItemDetails()... population:" << population << "**********************************";
} }
GeometryCache::BatchItemDetails::~BatchItemDetails() { GeometryCache::BatchItemDetails::~BatchItemDetails() {
population--; population--;
clear(); clear();
//qDebug() << "~BatchItemDetails()... population:" << population << "**********************************"; qDebug() << "~BatchItemDetails()... population:" << population << "**********************************";
} }
void GeometryCache::BatchItemDetails::clear() { void GeometryCache::BatchItemDetails::clear() {
@ -1495,6 +1569,7 @@ void GeometryCache::BatchItemDetails::clear() {
void GeometryCache::renderLine(const glm::vec3& p1, const glm::vec3& p2, void GeometryCache::renderLine(const glm::vec3& p1, const glm::vec3& p2,
const glm::vec4& color1, const glm::vec4& color2, int id) { const glm::vec4& color1, const glm::vec4& color2, int id) {
qDebug() << "GeometryCache::renderLine(vec3)...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec3Pair key(p1, p2); Vec3Pair key(p1, p2);
@ -1587,6 +1662,7 @@ void GeometryCache::renderLine(const glm::vec3& p1, const glm::vec3& p2,
void GeometryCache::renderLine(const glm::vec2& p1, const glm::vec2& p2, void GeometryCache::renderLine(const glm::vec2& p1, const glm::vec2& p2,
const glm::vec4& color1, const glm::vec4& color2, int id) { const glm::vec4& color1, const glm::vec4& color2, int id) {
qDebug() << "GeometryCache::renderLine(vec2)...";
bool registered = (id != UNKNOWN_ID); bool registered = (id != UNKNOWN_ID);
Vec2Pair key(p1, p2); Vec2Pair key(p1, p2);

View file

@ -25,7 +25,9 @@
#include <AnimationCache.h> #include <AnimationCache.h>
#include "gpu/Stream.h" #include <gpu/Batch.h>
#include <gpu/Stream.h>
class NetworkGeometry; class NetworkGeometry;
class NetworkMesh; class NetworkMesh;
@ -153,7 +155,7 @@ public:
void updateVertices(int id, const QVector<glm::vec2>& points, const glm::vec4& color); void updateVertices(int id, const QVector<glm::vec2>& points, const glm::vec4& color);
void updateVertices(int id, const QVector<glm::vec3>& points, const glm::vec4& color); void updateVertices(int id, const QVector<glm::vec3>& points, const glm::vec4& color);
void renderVertices(GLenum mode, int id); void renderVertices(gpu::Primitive primitiveType, int id);
/// Loads geometry from the specified URL. /// Loads geometry from the specified URL.
/// \param fallback a fallback URL to load if the desired one is unavailable /// \param fallback a fallback URL to load if the desired one is unavailable
@ -244,7 +246,7 @@ private:
QHash<Vec2Pair, BatchItemDetails> _line2DVBOs; QHash<Vec2Pair, BatchItemDetails> _line2DVBOs;
QHash<int, BatchItemDetails> _registeredLine2DVBOs; QHash<int, BatchItemDetails> _registeredLine2DVBOs;
QHash<int, BufferDetails> _registeredVertices; QHash<int, BatchItemDetails> _registeredVertices;
QHash<int, Vec3Pair> _lastRegisteredDashedLines; QHash<int, Vec3Pair> _lastRegisteredDashedLines;
QHash<Vec3Pair, BufferDetails> _dashedLines; QHash<Vec3Pair, BufferDetails> _dashedLines;

View file

@ -22,5 +22,6 @@ void renderFullscreenQuad(float sMin, float sMax, float tMin, float tMax) {
glm::vec2 bottomRight(1.0f, 1.0f); glm::vec2 bottomRight(1.0f, 1.0f);
glm::vec2 texCoordTopLeft(sMin, tMin); glm::vec2 texCoordTopLeft(sMin, tMin);
glm::vec2 texCoordBottomRight(sMax, tMax); glm::vec2 texCoordBottomRight(sMax, tMax);
DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, color); DependencyManager::get<GeometryCache>()->renderQuad(topLeft, bottomRight, texCoordTopLeft, texCoordBottomRight, color);
} }