Browse Source

metal: implement point sizes

Alex Szpakowski 4 years ago
parent
commit
3744f8b939
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/modules/graphics/metal/Graphics.mm

+ 10 - 1
src/modules/graphics/metal/Graphics.mm

@@ -707,6 +707,12 @@ void Graphics::applyShaderUniforms(id<MTLRenderCommandEncoder> renderEncoder, lo
 		}
 	}
 
+	// Store DPI scale in an unused component of another vector.
+	builtins->normalMatrix[0].w = (float) getCurrentDPIScale();
+
+	// Same with point size.
+	builtins->normalMatrix[1].w = getPointSize();
+
 	// FIXME: should be active RT dimensions
 	builtins->screenSizeParams = Vector4(getPixelWidth(), getPixelHeight(), 1.0f, 0.0f);
 
@@ -1280,7 +1286,10 @@ void Graphics::setBlendState(const BlendState &blend)
 
 void Graphics::setPointSize(float size)
 {
-	// TODO
+	if (size != states.back().pointSize)
+		flushBatchedDraws();
+
+	states.back().pointSize = size;
 }
 
 void Graphics::setWireframe(bool enable)