mcst-linux-kernel/patches-2024.06.26/gl4es-1.1.4/0059-ARB-Fixed-some-bugs-in...

75 lines
2.3 KiB
Diff

From 4511076000653d796ed9f11f320bf7b140f451f1 Mon Sep 17 00:00:00 2001
From: rajdakin <rajdakin@gmail.com>
Date: Mon, 19 Oct 2020 11:35:45 +0200
Subject: [PATCH 059/233] [ARB] Fixed some bugs in the ARB converter
---
src/gl/arbconverter.c | 2 +-
src/gl/arbgenerator.c | 8 ++++----
src/gl/arbparser.c | 6 ++++++
3 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/src/gl/arbconverter.c b/src/gl/arbconverter.c
index 5d8fbfec..c0a7aa58 100755
--- a/src/gl/arbconverter.c
+++ b/src/gl/arbconverter.c
@@ -282,7 +282,7 @@ char* gl4es_convertARB(const char* const code, int vertex, char **error_msg, int
break;
}
if(curStatus.position_invariant) {
- APPEND_OUTPUT2("\tgl_Position = ftransform();\n;")
+ APPEND_OUTPUT("\tgl_Position = ftransform();\n", 29)
}
APPEND_OUTPUT("}\n", 2)
} while (0);
diff --git a/src/gl/arbgenerator.c b/src/gl/arbgenerator.c
index ad2e7517..46ce8e11 100755
--- a/src/gl/arbgenerator.c
+++ b/src/gl/arbgenerator.c
@@ -694,13 +694,13 @@ void generateInstruction(sCurStatus *curStatusPtr, int vertex, char **error_msg,
APPEND_OUTPUT(" = ", 3)
PUSH_PRE_SAT(0)
APPEND_OUTPUT("mix(", 4)
- PUSH_VECTSRC(3)
+ PUSH_VARNAME(3)
PUSH_DSTMASK(0, 3)
APPEND_OUTPUT(", ", 2)
- PUSH_VECTSRC(2)
+ PUSH_VARNAME(2)
PUSH_DSTMASK(0, 2)
APPEND_OUTPUT(", ", 2)
- PUSH_VECTSRC(1)
+ PUSH_VARNAME(1)
PUSH_DSTMASK(0, 1)
APPEND_OUTPUT(")", 1)
PUSH_POSTSAT(0)
@@ -746,7 +746,7 @@ void generateInstruction(sCurStatus *curStatusPtr, int vertex, char **error_msg,
APPEND_OUTPUT(" = ", 3)
PUSH_PRE_SAT(0)
APPEND_OUTPUT("min(", 4)
- PUSH_VECTSRC(1)
+ PUSH_VARNAME(1)
PUSH_DSTMASK(0, 1)
APPEND_OUTPUT(", ", 2)
PUSH_VARNAME(2)
diff --git a/src/gl/arbparser.c b/src/gl/arbparser.c
index 6073f79d..e011b02f 100755
--- a/src/gl/arbparser.c
+++ b/src/gl/arbparser.c
@@ -2399,6 +2399,12 @@ void parseToken(sCurStatus* curStatusPtr, int vertex, char **error_msg, struct s
free(tok);
FAIL("Cannot redefine variable");
}
+
+ if (!strcmp(tok, "half")) {
+ // Special case for the 'half' keyword
+ pushArray((sArray*)curStatusPtr->curValue.newVar.var, strdup("gl4es_half"));
+ }
+
pushArray((sArray*)curStatusPtr->curValue.newVar.var, tok);
curStatusPtr->curValue.newVar.state = 1;
break; }
--
2.11.0