Improve slider rendering.

Significantly improves looks and performance of sliders, especially on
shared memory graphics models like integegrated GPUs.
No longer renders using cones and a framebuffer, instead renders quads
and triangles for curves, using much less geometry.
This commit is contained in:
Matteo Signer
2016-12-03 14:06:58 +01:00
parent 79bfa1c255
commit 9991364077
3 changed files with 297 additions and 172 deletions

View File

@@ -95,12 +95,12 @@ public abstract class Curve {
Curve.borderColor = borderColor;
ContextCapabilities capabilities = GLContext.getCapabilities();
mmsliderSupported = capabilities.GL_EXT_framebuffer_object;
mmsliderSupported = capabilities.OpenGL20;
if (mmsliderSupported)
CurveRenderState.init(width, height, circleDiameter);
else {
if (Options.getSkin().getSliderStyle() != Skin.STYLE_PEPPYSLIDER)
Log.warn("New slider style requires FBO support.");
Log.warn("New slider style requires OpenGL 2.0.");
}
}
@@ -172,8 +172,8 @@ public abstract class Curve {
/**
* Discards the slider cache (only used for mmsliders).
*/
public void discardCache() {
public void discardGeometry() {
if (renderState != null)
renderState.discardCache();
renderState.discardGeometry();
}
}