[Scummvm-git-logs] scummvm master -> bb055c69e836a2b8d25023277b23363ddd8830b9

neuromancer noreply at scummvm.org
Sat May 18 06:10:07 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
fe0817fa57 FREESCAPE: added stipple support for software rendering
bb055c69e8 FREESCAPE: tglPolygonStipple is not defined until we merge support for it


Commit: fe0817fa57f3446ab663e0c646de5a8ad2361bea
    https://github.com/scummvm/scummvm/commit/fe0817fa57f3446ab663e0c646de5a8ad2361bea
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-05-18T08:10:13+02:00

Commit Message:
FREESCAPE: added stipple support for software rendering

Changed paths:
    engines/freescape/gfx_tinygl.cpp
    engines/freescape/gfx_tinygl.h


diff --git a/engines/freescape/gfx_tinygl.cpp b/engines/freescape/gfx_tinygl.cpp
index b1ce5b79280..a3988e15d1f 100644
--- a/engines/freescape/gfx_tinygl.cpp
+++ b/engines/freescape/gfx_tinygl.cpp
@@ -41,6 +41,7 @@ Renderer *CreateGfxTinyGL(int screenW, int screenH, Common::RenderMode renderMod
 TinyGLRenderer::TinyGLRenderer(int screenW, int screenH, Common::RenderMode renderMode) : Renderer(screenW, screenH, renderMode) {
 	_verts = (Vertex *)malloc(sizeof(Vertex) * kVertexArraySize);
 	_texturePixelFormat = TinyGLTexture::getRGBAPixelFormat();
+	_variableStippleArray = nullptr;
 }
 
 TinyGLRenderer::~TinyGLRenderer() {
@@ -208,6 +209,35 @@ void TinyGLRenderer::renderCrossair(const Common::Point crossairPosition) {
 	tglDepthMask(TGL_TRUE);
 }
 
+void TinyGLRenderer::setStippleData(byte *data) {
+	if (!data)
+		return;
+
+	_variableStippleArray = data;
+	//for (int i = 0; i < 128; i++)
+	//	_variableStippleArray[i] = data[(i / 16) % 4];
+}
+
+void TinyGLRenderer::useStipple(bool enabled) {
+	if (enabled) {
+		TGLfloat factor = 0;
+		tglGetFloatv(TGL_POLYGON_OFFSET_FACTOR, &factor);
+		tglEnable(TGL_POLYGON_OFFSET_FILL);
+		tglPolygonOffset(factor - 5.0f, -1.0f);
+		tglEnable(TGL_POLYGON_STIPPLE);
+		if (_renderMode == Common::kRenderZX  ||
+			_renderMode == Common::kRenderCPC ||
+			_renderMode == Common::kRenderCGA)
+			tglPolygonStipple(_variableStippleArray);
+		/*else
+			tglPolygonStipple(_defaultStippleArray);*/
+	} else {
+		tglPolygonOffset(0, 0);
+		tglDisable(TGL_POLYGON_OFFSET_FILL);
+		tglDisable(TGL_POLYGON_STIPPLE);
+	}
+}
+
 void TinyGLRenderer::renderFace(const Common::Array<Math::Vector3d> &vertices) {
 	assert(vertices.size() >= 2);
 	const Math::Vector3d &v0 = vertices[0];
diff --git a/engines/freescape/gfx_tinygl.h b/engines/freescape/gfx_tinygl.h
index f9e12a37f66..8ed7ea4ceb7 100644
--- a/engines/freescape/gfx_tinygl.h
+++ b/engines/freescape/gfx_tinygl.h
@@ -55,6 +55,10 @@ public:
 	virtual void useColor(uint8 r, uint8 g, uint8 b) override;
 	virtual void polygonOffset(bool enabled) override;
 	virtual void depthTesting(bool enabled) override;
+	virtual void setStippleData(byte *data) override;
+	virtual void useStipple(bool enabled) override;
+
+	TGLubyte *_variableStippleArray;
 
 	Texture *createTexture(const Graphics::Surface *surface) override;
 	void freeTexture(Texture *texture) override;


Commit: bb055c69e836a2b8d25023277b23363ddd8830b9
    https://github.com/scummvm/scummvm/commit/bb055c69e836a2b8d25023277b23363ddd8830b9
Author: neuromancer (gustavo.grieco at gmail.com)
Date: 2024-05-18T08:10:13+02:00

Commit Message:
FREESCAPE: tglPolygonStipple is not defined until we merge support for it

Changed paths:
    engines/freescape/gfx_tinygl.cpp


diff --git a/engines/freescape/gfx_tinygl.cpp b/engines/freescape/gfx_tinygl.cpp
index a3988e15d1f..2ba7455d5bc 100644
--- a/engines/freescape/gfx_tinygl.cpp
+++ b/engines/freescape/gfx_tinygl.cpp
@@ -228,7 +228,7 @@ void TinyGLRenderer::useStipple(bool enabled) {
 		if (_renderMode == Common::kRenderZX  ||
 			_renderMode == Common::kRenderCPC ||
 			_renderMode == Common::kRenderCGA)
-			tglPolygonStipple(_variableStippleArray);
+			;//tglPolygonStipple(_variableStippleArray);
 		/*else
 			tglPolygonStipple(_defaultStippleArray);*/
 	} else {




More information about the Scummvm-git-logs mailing list