I narrowed it down, the crash happens here:
void flushQuads() noexcept
{
if (quadQueueActive)
{
if (numVertices > 0)
{
glDrawArrays (GL_TRIANGLES, 0, numVertices); <-- this crashes, can't step into it
numVertices = 0;
}
quadQueueActive = false;
glDisableClientState (GL_COLOR_ARRAY);
}
}
The stack trace when i break at that line:
> JuceDemo.exe!juce::OpenGLRenderer::GLState::flushQuads() Line 1134 C++
JuceDemo.exe!juce::OpenGLRenderer::GLState::renderImage(const juce::OpenGLTextureFromImage & image, const juce::Rectangle<int> & clip, const juce::AffineTransform & transform, float alpha, const juce::PositionedTexture * mask1, const juce::PositionedTexture * mask2, const bool replaceExistingContents, const bool isTiled) Line 910 C++
JuceDemo.exe!juce::ClipRegion_RectangleList::drawImage(const juce::OpenGLTextureFromImage & source, const juce::AffineTransform & transform, float alpha, const juce::Rectangle<int> & clipArea, const juce::PositionedTexture * mask) Line 1791 C++
JuceDemo.exe!juce::OpenGLRenderer::SavedState::drawImage(const juce::Image & image, const juce::AffineTransform & trans) Line 2145 + 0x51 bytes C++
JuceDemo.exe!juce::OpenGLRenderer::drawImage(const juce::Image & im, const juce::AffineTransform & t) Line 2271 + 0x26 bytes C++
JuceDemo.exe!juce::Graphics::drawImageTransformed(const juce::Image & imageToDraw, const juce::AffineTransform & transform, const bool fillAlphaChannelWithCurrentBrush) Line 722 C++
JuceDemo.exe!juce::Graphics::drawImage(const juce::Image & imageToDraw, int dx, int dy, int dw, int dh, int sx, int sy, int sw, int sh, const bool fillAlphaChannelWithCurrentBrush) Line 700 + 0xfc bytes C++
JuceDemo.exe!juce::Graphics::drawImageWithin(const juce::Image & imageToDraw, const int destX, const int destY, const int destW, const int destH, const juce::RectanglePlacement & placementWithinTarget, const bool fillAlphaChannelWithCurrentBrush) Line 684 C++
JuceDemo.exe!DemoOpenGLCanvas::createLogoImage() Line 186 + 0x57 bytes C++
JuceDemo.exe!DemoOpenGLCanvas::newOpenGLContextCreated() Line 69 + 0x9 bytes C++
JuceDemo.exe!juce::OpenGLComponent::updateContext() Line 464 C++
JuceDemo.exe!juce::OpenGLComponent::OpenGLCachedComponentImage::paint(juce::Graphics & __formal) Line 259 C++
JuceDemo.exe!juce::Component::paintWithinParentContext(juce::Graphics & g) Line 1865 C++
JuceDemo.exe!juce::Component::paintComponentAndChildren(juce::Graphics & g) Line 1931 C++
JuceDemo.exe!juce::Component::paintEntireComponent(juce::Graphics & g, const bool ignoreAlphaLevel) Line 1973 C++
JuceDemo.exe!juce::Component::paintWithinParentContext(juce::Graphics & g) Line 1867 C++
JuceDemo.exe!juce::Component::paintComponentAndChildren(juce::Graphics & g) Line 1931 C++
JuceDemo.exe!juce::Component::paintEntireComponent(juce::Graphics & g, const bool ignoreAlphaLevel) Line 1973 C++
JuceDemo.exe!juce::Component::paintWithinParentContext(juce::Graphics & g) Line 1867 C++
JuceDemo.exe!juce::Component::paintComponentAndChildren(juce::Graphics & g) Line 1931 C++
JuceDemo.exe!juce::Component::paintEntireComponent(juce::Graphics & g, const bool ignoreAlphaLevel) Line 1973 C++
JuceDemo.exe!juce::ComponentPeer::handlePaint(juce::LowLevelGraphicsContext & contextToPaintTo) Line 137 C++
JuceDemo.exe!juce::HWNDComponentPeer::handlePaintMessage() Line 1367 C++
JuceDemo.exe!juce::HWNDComponentPeer::peerWindowProc(HWND__ * h, unsigned int message, unsigned int wParam, long lParam) Line 2125 C++
JuceDemo.exe!juce::HWNDComponentPeer::windowProc(HWND__ * h, unsigned int message, unsigned int wParam, long lParam) Line 2077 + 0x18 bytes C++