75 lines
2.3 KiB
Diff
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
|
|
|