From 9425c9224b80873d741543b24d55a066b5bac398 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 27 Feb 2020 20:08:50 -0400 Subject: [PATCH] Rename internal batched draw code to be more clear --- src/modules/graphics/Deprecations.cpp | 2 +- src/modules/graphics/Font.cpp | 6 +-- src/modules/graphics/Graphics.cpp | 42 ++++++++++---------- src/modules/graphics/Graphics.h | 18 ++++----- src/modules/graphics/Mesh.cpp | 2 +- src/modules/graphics/ParticleSystem.cpp | 2 +- src/modules/graphics/Polyline.cpp | 4 +- src/modules/graphics/SpriteBatch.cpp | 2 +- src/modules/graphics/Text.cpp | 2 +- src/modules/graphics/Texture.cpp | 14 +++---- src/modules/graphics/Video.cpp | 6 +-- src/modules/graphics/opengl/Graphics.cpp | 50 ++++++++++++------------ src/modules/graphics/opengl/Shader.cpp | 10 ++--- src/modules/graphics/opengl/Shader.h | 2 +- src/modules/graphics/wrap_Graphics.cpp | 2 +- 15 files changed, 82 insertions(+), 82 deletions(-) diff --git a/src/modules/graphics/Deprecations.cpp b/src/modules/graphics/Deprecations.cpp index ac093a455..9e312accb 100644 --- a/src/modules/graphics/Deprecations.cpp +++ b/src/modules/graphics/Deprecations.cpp @@ -82,7 +82,7 @@ void Deprecations::draw(Graphics *gfx) font.set(gfx->newDefaultFont(9, hinting), Acquire::NORETAIN); } - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); gfx->push(Graphics::STACK_ALL); gfx->reset(); diff --git a/src/modules/graphics/Font.cpp b/src/modules/graphics/Font.cpp index 928d96f7d..099e74a05 100644 --- a/src/modules/graphics/Font.cpp +++ b/src/modules/graphics/Font.cpp @@ -133,7 +133,7 @@ bool Font::loadVolatile() void Font::createTexture() { auto gfx = Module::getInstance(Module::M_GRAPHICS); - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); Texture *texture = nullptr; TextureSize size = {textureWidth, textureHeight}; @@ -645,13 +645,13 @@ void Font::printv(graphics::Graphics *gfx, const Matrix4 &t, const std::vectorrequestStreamDraw(streamcmd); + Graphics::BatchedVertexData data = gfx->requestBatchedDraw(streamcmd); GlyphVertex *vertexdata = (GlyphVertex *) data.stream[0]; memcpy(vertexdata, &vertices[cmd.startvertex], sizeof(GlyphVertex) * cmd.vertexcount); diff --git a/src/modules/graphics/Graphics.cpp b/src/modules/graphics/Graphics.cpp index 7fa8d587f..9c704ed50 100644 --- a/src/modules/graphics/Graphics.cpp +++ b/src/modules/graphics/Graphics.cpp @@ -114,7 +114,7 @@ Graphics::Graphics() , created(false) , active(true) , writingToStencil(false) - , streamBufferState() + , batchedDrawState() , projectionMatrix() , renderTargetSwitchCount(0) , drawCalls(0) @@ -157,9 +157,9 @@ Graphics::~Graphics() defaultFont.set(nullptr); - delete streamBufferState.vb[0]; - delete streamBufferState.vb[1]; - delete streamBufferState.indexBuffer; + delete batchedDrawState.vb[0]; + delete batchedDrawState.vb[1]; + delete batchedDrawState.indexBuffer; for (int i = 0; i < (int) ShaderStage::STAGE_MAX_ENUM; i++) cachedShaderStages[i].clear(); @@ -691,7 +691,7 @@ void Graphics::setRenderTargets(const RenderTargets &rts) int w = firsttex->getWidth(firsttarget.mipmap); int h = firsttex->getHeight(firsttarget.mipmap); - flushStreamDraws(); + flushBatchedDraws(); if (rts.depthStencil.texture == nullptr && rts.temporaryRTFlags != 0) { @@ -741,7 +741,7 @@ void Graphics::setRenderTarget() if (state.renderTargets.colors.empty() && state.renderTargets.depthStencil.texture == nullptr) return; - flushStreamDraws(); + flushBatchedDraws(); setRenderTargetsInternal(RenderTargets(), width, height, pixelWidth, pixelHeight, isGammaCorrect()); state.renderTargets = RenderTargetsStrongRef(); @@ -986,11 +986,11 @@ void Graphics::captureScreenshot(const ScreenshotInfo &info) pendingScreenshotCallbacks.push_back(info); } -Graphics::StreamVertexData Graphics::requestStreamDraw(const StreamDrawCommand &cmd) +Graphics::BatchedVertexData Graphics::requestBatchedDraw(const BatchedDrawCommand &cmd) { using namespace vertex; - StreamBufferState &state = streamBufferState; + BatchedDrawState &state = batchedDrawState; bool shouldflush = false; bool shouldresize = false; @@ -1052,7 +1052,7 @@ Graphics::StreamVertexData Graphics::requestStreamDraw(const StreamDrawCommand & if (shouldflush || shouldresize) { - flushStreamDraws(); + flushBatchedDraws(); state.primitiveMode = cmd.primitiveMode; state.formats[0] = cmd.formats[0]; @@ -1096,7 +1096,7 @@ Graphics::StreamVertexData Graphics::requestStreamDraw(const StreamDrawCommand & state.indexBufferMap.data += reqIndexSize; } - StreamVertexData d; + BatchedVertexData d; for (int i = 0; i < 2; i++) { @@ -1120,11 +1120,11 @@ Graphics::StreamVertexData Graphics::requestStreamDraw(const StreamDrawCommand & return d; } -void Graphics::flushStreamDraws() +void Graphics::flushBatchedDraws() { using namespace vertex; - auto &sbstate = streamBufferState; + auto &sbstate = batchedDrawState; if (sbstate.vertexCount == 0 && sbstate.indexCount == 0) return; @@ -1195,15 +1195,15 @@ void Graphics::flushStreamDraws() if (attributes.isEnabled(ATTRIB_COLOR)) setColor(nc); - streamBufferState.vertexCount = 0; - streamBufferState.indexCount = 0; + batchedDrawState.vertexCount = 0; + batchedDrawState.indexCount = 0; } -void Graphics::flushStreamDrawsGlobal() +void Graphics::flushBatchedDrawsGlobal() { Graphics *instance = getInstance(M_GRAPHICS); if (instance != nullptr) - instance->flushStreamDraws(); + instance->flushBatchedDraws(); } /** @@ -1270,13 +1270,13 @@ void Graphics::points(const Vector2 *positions, const Colorf *colors, size_t num const Matrix4 &t = getTransform(); bool is2D = t.isAffine2DTransform(); - StreamDrawCommand cmd; + BatchedDrawCommand cmd; cmd.primitiveMode = PRIMITIVE_POINTS; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = vertex::CommonFormat::RGBAub; cmd.vertexCount = (int) numpoints; - StreamVertexData data = requestStreamDraw(cmd); + BatchedVertexData data = requestBatchedDraw(cmd); if (is2D) t.transformXY((Vector2 *) data.stream[0], positions, cmd.vertexCount); @@ -1566,13 +1566,13 @@ void Graphics::polygon(DrawMode mode, const Vector2 *coords, size_t count, bool const Matrix4 &t = getTransform(); bool is2D = t.isAffine2DTransform(); - StreamDrawCommand cmd; + BatchedDrawCommand cmd; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = vertex::CommonFormat::RGBAub; cmd.indexMode = vertex::TriangleIndexMode::FAN; cmd.vertexCount = (int)count - (skipLastFilledVertex ? 1 : 0); - StreamVertexData data = requestStreamDraw(cmd); + BatchedVertexData data = requestBatchedDraw(cmd); if (is2D) t.transformXY((Vector2 *) data.stream[0], coords, cmd.vertexCount); @@ -1598,7 +1598,7 @@ Graphics::Stats Graphics::getStats() const getAPIStats(stats.shaderSwitches); stats.drawCalls = drawCalls; - if (streamBufferState.vertexCount > 0) + if (batchedDrawState.vertexCount > 0) stats.drawCalls++; stats.renderTargetSwitches = renderTargetSwitchCount; diff --git a/src/modules/graphics/Graphics.h b/src/modules/graphics/Graphics.h index 119ef5ff8..6068d8560 100644 --- a/src/modules/graphics/Graphics.h +++ b/src/modules/graphics/Graphics.h @@ -253,7 +253,7 @@ public: {} }; - struct StreamDrawCommand + struct BatchedDrawCommand { PrimitiveType primitiveMode = PRIMITIVE_TRIANGLES; vertex::CommonFormat formats[2]; @@ -262,14 +262,14 @@ public: Texture *texture = nullptr; Shader::StandardShader standardShaderType = Shader::STANDARD_DEFAULT; - StreamDrawCommand() + BatchedDrawCommand() { // VS2013 can't initialize arrays in the above manner... formats[1] = formats[0] = vertex::CommonFormat::NONE; } }; - struct StreamVertexData + struct BatchedVertexData { void *stream[2]; }; @@ -822,10 +822,10 @@ public: virtual void draw(const DrawIndexedCommand &cmd) = 0; virtual void drawQuads(int start, int count, const vertex::Attributes &attributes, const vertex::BufferBindings &buffers, Texture *texture) = 0; - void flushStreamDraws(); - StreamVertexData requestStreamDraw(const StreamDrawCommand &command); + void flushBatchedDraws(); + BatchedVertexData requestBatchedDraw(const BatchedDrawCommand &command); - static void flushStreamDrawsGlobal(); + static void flushBatchedDrawsGlobal(); virtual Shader::Language getShaderLanguageTarget() const = 0; const DefaultShaderCode &getCurrentDefaultShaderCode() const; @@ -911,7 +911,7 @@ protected: SamplerState defaultSamplerState = SamplerState(); }; - struct StreamBufferState + struct BatchedDrawState { StreamBuffer *vb[2]; StreamBuffer *indexBuffer = nullptr; @@ -926,7 +926,7 @@ protected: StreamBuffer::MapInfo vbMap[2]; StreamBuffer::MapInfo indexBufferMap = StreamBuffer::MapInfo(); - StreamBufferState() + BatchedDrawState() { vb[0] = vb[1] = nullptr; formats[0] = formats[1] = vertex::CommonFormat::NONE; @@ -979,7 +979,7 @@ protected: std::vector pendingScreenshotCallbacks; - StreamBufferState streamBufferState; + BatchedDrawState batchedDrawState; std::vector transformStack; Matrix4 projectionMatrix; diff --git a/src/modules/graphics/Mesh.cpp b/src/modules/graphics/Mesh.cpp index 7c3a42c95..29183d70a 100644 --- a/src/modules/graphics/Mesh.cpp +++ b/src/modules/graphics/Mesh.cpp @@ -584,7 +584,7 @@ void Mesh::drawInstanced(Graphics *gfx, const Matrix4 &m, int instancecount) if (instancecount > 1 && !gfx->getCapabilities().features[Graphics::FEATURE_INSTANCING]) throw love::Exception("Instancing is not supported on this system."); - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); if (Shader::isDefaultActive()) Shader::attachDefault(Shader::STANDARD_DEFAULT); diff --git a/src/modules/graphics/ParticleSystem.cpp b/src/modules/graphics/ParticleSystem.cpp index 35cb48979..fac406e96 100644 --- a/src/modules/graphics/ParticleSystem.cpp +++ b/src/modules/graphics/ParticleSystem.cpp @@ -1029,7 +1029,7 @@ void ParticleSystem::draw(Graphics *gfx, const Matrix4 &m) if (pCount == 0 || texture.get() == nullptr || pMem == nullptr || buffer == nullptr) return; - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); if (Shader::isDefaultActive()) Shader::attachDefault(Shader::STANDARD_DEFAULT); diff --git a/src/modules/graphics/Polyline.cpp b/src/modules/graphics/Polyline.cpp index da1397b42..5698a9dd3 100644 --- a/src/modules/graphics/Polyline.cpp +++ b/src/modules/graphics/Polyline.cpp @@ -390,13 +390,13 @@ void Polyline::draw(love::graphics::Graphics *gfx) { const Vector2 *verts = vertices + vertex_start; - Graphics::StreamDrawCommand cmd; + Graphics::BatchedDrawCommand cmd; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = vertex::CommonFormat::RGBAub; cmd.indexMode = triangle_mode; cmd.vertexCount = std::min(maxvertices, total_vertex_count - vertex_start); - Graphics::StreamVertexData data = gfx->requestStreamDraw(cmd); + Graphics::BatchedVertexData data = gfx->requestBatchedDraw(cmd); if (is2D) t.transformXY((Vector2 *) data.stream[0], verts, cmd.vertexCount); diff --git a/src/modules/graphics/SpriteBatch.cpp b/src/modules/graphics/SpriteBatch.cpp index ce264b019..d62729d32 100644 --- a/src/modules/graphics/SpriteBatch.cpp +++ b/src/modules/graphics/SpriteBatch.cpp @@ -301,7 +301,7 @@ void SpriteBatch::draw(Graphics *gfx, const Matrix4 &m) if (next == 0) return; - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); if (texture.get()) { diff --git a/src/modules/graphics/Text.cpp b/src/modules/graphics/Text.cpp index 180862ed3..1ea624200 100644 --- a/src/modules/graphics/Text.cpp +++ b/src/modules/graphics/Text.cpp @@ -246,7 +246,7 @@ void Text::draw(Graphics *gfx, const Matrix4 &m) if (vertex_buffer == nullptr || draw_commands.empty()) return; - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); if (Shader::isDefaultActive()) Shader::attachDefault(Shader::STANDARD_DEFAULT); diff --git a/src/modules/graphics/Texture.cpp b/src/modules/graphics/Texture.cpp index e85906e34..0200e58ef 100644 --- a/src/modules/graphics/Texture.cpp +++ b/src/modules/graphics/Texture.cpp @@ -324,14 +324,14 @@ void Texture::draw(Graphics *gfx, Quad *q, const Matrix4 &localTransform) const Matrix4 &tm = gfx->getTransform(); bool is2D = tm.isAffine2DTransform(); - Graphics::StreamDrawCommand cmd; + Graphics::BatchedDrawCommand cmd; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = CommonFormat::STf_RGBAub; cmd.indexMode = TriangleIndexMode::QUADS; cmd.vertexCount = 4; cmd.texture = this; - Graphics::StreamVertexData data = gfx->requestStreamDraw(cmd); + Graphics::BatchedVertexData data = gfx->requestBatchedDraw(cmd); Matrix4 t(tm, localTransform); @@ -381,7 +381,7 @@ void Texture::drawLayer(Graphics *gfx, int layer, Quad *q, const Matrix4 &m) Matrix4 t(tm, m); - Graphics::StreamDrawCommand cmd; + Graphics::BatchedDrawCommand cmd; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = CommonFormat::STPf_RGBAub; cmd.indexMode = TriangleIndexMode::QUADS; @@ -389,7 +389,7 @@ void Texture::drawLayer(Graphics *gfx, int layer, Quad *q, const Matrix4 &m) cmd.texture = this; cmd.standardShaderType = Shader::STANDARD_ARRAY; - Graphics::StreamVertexData data = gfx->requestStreamDraw(cmd); + Graphics::BatchedVertexData data = gfx->requestBatchedDraw(cmd); if (is2D) t.transformXY((Vector2 *) data.stream[0], q->getVertexPositions(), 4); @@ -464,7 +464,7 @@ void Texture::replacePixels(love::image::ImageDataBase *d, int slice, int mipmap if (isPixelFormatCompressed(d->getFormat()) && (rect.x != 0 || rect.y != 0 || rect.w != mipw || rect.h != miph)) throw love::Exception("Compressed textures only support replacing the entire Texture."); - Graphics::flushStreamDrawsGlobal(); + Graphics::flushBatchedDrawsGlobal(); uploadImageData(d, mipmap, slice, x, y); @@ -481,7 +481,7 @@ void Texture::replacePixels(const void *data, size_t size, int slice, int mipmap if (gfx != nullptr && gfx->isRenderTargetActive(this)) return; - Graphics::flushStreamDrawsGlobal(); + Graphics::flushBatchedDrawsGlobal(); uploadByteData(format, data, size, mipmap, slice, rect, nullptr); @@ -631,7 +631,7 @@ void Texture::setSamplerState(const SamplerState &s) if (s.depthSampleMode.hasValue && !isPixelFormatDepth(format)) throw love::Exception("Only depth textures can have a depth sample compare mode."); - Graphics::flushStreamDrawsGlobal(); + Graphics::flushBatchedDrawsGlobal(); samplerState = s; diff --git a/src/modules/graphics/Video.cpp b/src/modules/graphics/Video.cpp index 9f2df9c5b..170ff08b2 100644 --- a/src/modules/graphics/Video.cpp +++ b/src/modules/graphics/Video.cpp @@ -120,14 +120,14 @@ void Video::draw(Graphics *gfx, const Matrix4 &m) Matrix4 t(tm, m); - Graphics::StreamDrawCommand cmd; + Graphics::BatchedDrawCommand cmd; cmd.formats[0] = vertex::getSinglePositionFormat(is2D); cmd.formats[1] = vertex::CommonFormat::STf_RGBAub; cmd.indexMode = vertex::TriangleIndexMode::QUADS; cmd.vertexCount = 4; cmd.standardShaderType = Shader::STANDARD_VIDEO; - Graphics::StreamVertexData data = gfx->requestStreamDraw(cmd); + Graphics::BatchedVertexData data = gfx->requestBatchedDraw(cmd); if (is2D) t.transformXY((Vector2 *) data.stream[0], vertices, 4); @@ -148,7 +148,7 @@ void Video::draw(Graphics *gfx, const Matrix4 &m) if (Shader::current != nullptr) Shader::current->setVideoTextures(textures[0], textures[1], textures[2]); - gfx->flushStreamDraws(); + gfx->flushBatchedDraws(); } void Video::update() diff --git a/src/modules/graphics/opengl/Graphics.cpp b/src/modules/graphics/opengl/Graphics.cpp index 7a700420a..ffde86c90 100644 --- a/src/modules/graphics/opengl/Graphics.cpp +++ b/src/modules/graphics/opengl/Graphics.cpp @@ -234,13 +234,13 @@ bool Graphics::setMode(int width, int height, int pixelwidth, int pixelheight, b setDebug(isDebugEnabled()); - if (streamBufferState.vb[0] == nullptr) + if (batchedDrawState.vb[0] == nullptr) { // Initial sizes that should be good enough for most cases. It will // resize to fit if needed, later. - streamBufferState.vb[0] = CreateStreamBuffer(BUFFER_VERTEX, 1024 * 1024 * 1); - streamBufferState.vb[1] = CreateStreamBuffer(BUFFER_VERTEX, 256 * 1024 * 1); - streamBufferState.indexBuffer = CreateStreamBuffer(BUFFER_INDEX, sizeof(uint16) * LOVE_UINT16_MAX); + batchedDrawState.vb[0] = CreateStreamBuffer(BUFFER_VERTEX, 1024 * 1024 * 1); + batchedDrawState.vb[1] = CreateStreamBuffer(BUFFER_VERTEX, 256 * 1024 * 1); + batchedDrawState.indexBuffer = CreateStreamBuffer(BUFFER_INDEX, sizeof(uint16) * LOVE_UINT16_MAX); } // Reload all volatile objects. @@ -293,7 +293,7 @@ void Graphics::unSetMode() if (!isCreated()) return; - flushStreamDraws(); + flushBatchedDraws(); // Unload all volatile objects. These must be reloaded after the display // mode change. @@ -321,7 +321,7 @@ void Graphics::unSetMode() void Graphics::setActive(bool enable) { - flushStreamDraws(); + flushBatchedDraws(); // Make sure all pending OpenGL commands have fully executed before // returning, when going from active to inactive. This is required on iOS. @@ -505,7 +505,7 @@ void Graphics::setRenderTargetsInternal(const RenderTargets &rts, int w, int h, OpenGL::TempDebugGroup debuggroup("setRenderTargets"); - flushStreamDraws(); + flushBatchedDraws(); endPass(); bool iswindow = rts.getFirstTarget().texture == nullptr; @@ -621,7 +621,7 @@ void Graphics::endPass() void Graphics::clear(OptionalColorf c, OptionalInt stencil, OptionalDouble depth) { if (c.hasValue || stencil.hasValue || depth.hasValue) - flushStreamDraws(); + flushBatchedDraws(); GLbitfield flags = 0; @@ -678,7 +678,7 @@ void Graphics::clear(const std::vector &colors, OptionalInt sten return; } - flushStreamDraws(); + flushBatchedDraws(); bool drawbuffersmodified = false; ncolors = std::min(ncolors, ncolorRTs); @@ -754,7 +754,7 @@ void Graphics::clear(const std::vector &colors, OptionalInt sten void Graphics::discard(const std::vector &colorbuffers, bool depthstencil) { - flushStreamDraws(); + flushBatchedDraws(); discard(OpenGL::FRAMEBUFFER_ALL, colorbuffers, depthstencil); } @@ -935,7 +935,7 @@ void Graphics::present(void *screenshotCallbackData) deprecations.draw(this); - flushStreamDraws(); + flushBatchedDraws(); endPass(); gl.bindFramebuffer(OpenGL::FRAMEBUFFER_ALL, gl.getDefaultFBO()); @@ -1038,9 +1038,9 @@ void Graphics::present(void *screenshotCallbackData) glBindRenderbuffer(GL_RENDERBUFFER, info.info.uikit.colorbuffer); #endif - for (StreamBuffer *buffer : streamBufferState.vb) + for (StreamBuffer *buffer : batchedDrawState.vb) buffer->nextFrame(); - streamBufferState.indexBuffer->nextFrame(); + batchedDrawState.indexBuffer->nextFrame(); auto window = getInstance(M_WINDOW); if (window != nullptr) @@ -1068,7 +1068,7 @@ void Graphics::present(void *screenshotCallbackData) void Graphics::setScissor(const Rect &rect) { - flushStreamDraws(); + flushBatchedDraws(); DisplayState &state = states.back(); @@ -1093,7 +1093,7 @@ void Graphics::setScissor(const Rect &rect) void Graphics::setScissor() { if (states.back().scissor) - flushStreamDraws(); + flushBatchedDraws(); states.back().scissor = false; @@ -1111,7 +1111,7 @@ void Graphics::drawToStencilBuffer(StencilAction action, int value) else if (isRenderTargetActive() && (rts.temporaryRTFlags & TEMPORARY_RT_STENCIL) == 0 && (dstexture == nullptr || !isPixelFormatStencil(dstexture->getPixelFormat()))) throw love::Exception("Drawing to the stencil buffer with a render target active requires either stencil=true or a custom stencil-type texture to be used, in setRenderTarget."); - flushStreamDraws(); + flushBatchedDraws(); writingToStencil = true; @@ -1156,7 +1156,7 @@ void Graphics::stopDrawToStencilBuffer() if (!writingToStencil) return; - flushStreamDraws(); + flushBatchedDraws(); writingToStencil = false; @@ -1174,7 +1174,7 @@ void Graphics::setStencilTest(CompareMode compare, int value) DisplayState &state = states.back(); if (state.stencilCompare != compare || state.stencilTestValue != value) - flushStreamDraws(); + flushBatchedDraws(); state.stencilCompare = compare; state.stencilTestValue = value; @@ -1211,7 +1211,7 @@ void Graphics::setDepthMode(CompareMode compare, bool write) DisplayState &state = states.back(); if (state.depthTest != compare || state.depthWrite != write) - flushStreamDraws(); + flushBatchedDraws(); state.depthTest = compare; state.depthWrite = write; @@ -1233,7 +1233,7 @@ void Graphics::setFrontFaceWinding(vertex::Winding winding) DisplayState &state = states.back(); if (state.winding != winding) - flushStreamDraws(); + flushBatchedDraws(); state.winding = winding; @@ -1255,7 +1255,7 @@ void Graphics::setColor(Colorf c) void Graphics::setColorMask(ColorChannelMask mask) { - flushStreamDraws(); + flushBatchedDraws(); glColorMask(mask.r, mask.g, mask.b, mask.a); states.back().colorMask = mask; @@ -1264,7 +1264,7 @@ void Graphics::setColorMask(ColorChannelMask mask) void Graphics::setBlendState(const BlendState &blend) { if (!(blend == states.back().blend)) - flushStreamDraws(); + flushBatchedDraws(); if (blend.operationRGB == BLENDOP_MAX || blend.operationA == BLENDOP_MAX || blend.operationRGB == BLENDOP_MIN || blend.operationA == BLENDOP_MIN) @@ -1294,8 +1294,8 @@ void Graphics::setBlendState(const BlendState &blend) void Graphics::setPointSize(float size) { - if (streamBufferState.primitiveMode == PRIMITIVE_POINTS) - flushStreamDraws(); + if (batchedDrawState.primitiveMode == PRIMITIVE_POINTS) + flushBatchedDraws(); gl.setPointSize(size * getCurrentDPIScale()); states.back().pointSize = size; @@ -1307,7 +1307,7 @@ void Graphics::setWireframe(bool enable) if (GLAD_ES_VERSION_2_0) return; - flushStreamDraws(); + flushBatchedDraws(); glPolygonMode(GL_FRONT_AND_BACK, enable ? GL_LINE : GL_FILL); states.back().wireframe = enable; diff --git a/src/modules/graphics/opengl/Shader.cpp b/src/modules/graphics/opengl/Shader.cpp index e57f918f3..84cef6f69 100644 --- a/src/modules/graphics/opengl/Shader.cpp +++ b/src/modules/graphics/opengl/Shader.cpp @@ -428,7 +428,7 @@ void Shader::attach() { if (current != this) { - Graphics::flushStreamDrawsGlobal(); + Graphics::flushBatchedDrawsGlobal(); gl.useProgram(program); current = this; @@ -479,7 +479,7 @@ void Shader::updateUniform(const UniformInfo *info, int count, bool internalupda } if (!internalupdate) - flushStreamDraws(); + flushBatchedDraws(); int location = info->location; UniformType type = info->baseType; @@ -577,7 +577,7 @@ void Shader::sendTextures(const UniformInfo *info, love::graphics::Texture **tex bool shaderactive = current == this; if (!internalUpdate && shaderactive) - flushStreamDraws(); + flushBatchedDraws(); count = std::min(count, info->count); @@ -643,10 +643,10 @@ void Shader::sendTextures(const UniformInfo *info, love::graphics::Texture **tex } } -void Shader::flushStreamDraws() const +void Shader::flushBatchedDraws() const { if (current == this) - Graphics::flushStreamDrawsGlobal(); + Graphics::flushBatchedDrawsGlobal(); } bool Shader::hasUniform(const std::string &name) const diff --git a/src/modules/graphics/opengl/Shader.h b/src/modules/graphics/opengl/Shader.h index 8681ca5b1..868563970 100644 --- a/src/modules/graphics/opengl/Shader.h +++ b/src/modules/graphics/opengl/Shader.h @@ -90,7 +90,7 @@ private: TextureType getUniformTextureType(GLenum type) const; bool isDepthTextureType(GLenum type) const; - void flushStreamDraws() const; + void flushBatchedDraws() const; // Get any warnings or errors generated only by the shader program object. std::string getProgramWarnings() const; diff --git a/src/modules/graphics/wrap_Graphics.cpp b/src/modules/graphics/wrap_Graphics.cpp index 981d7666c..a801f6594 100644 --- a/src/modules/graphics/wrap_Graphics.cpp +++ b/src/modules/graphics/wrap_Graphics.cpp @@ -3029,7 +3029,7 @@ int w_polygon(lua_State *L) int w_flushBatch(lua_State *) { - instance()->flushStreamDraws(); + instance()->flushBatchedDraws(); return 0; }