[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