mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-06-29 09:20:38 +00:00
Indentation work (.bas files). No actual code changes.
This commit is contained in:
parent
37986c978b
commit
024f27a5b5
|
@ -2780,7 +2780,7 @@ FUNCTION ide2 (ignore)
|
||||||
idemouseselect = 1
|
idemouseselect = 1
|
||||||
wholeword.select = 0
|
wholeword.select = 0
|
||||||
END IF
|
END IF
|
||||||
ELSEIF mX > 1 AND mx =< 1 + maxLineNumberLength AND mY > 2 AND mY < (idewy - 5) AND ShowLineNumbers THEN
|
ELSEIF mX > 1 AND mX <= 1 + maxLineNumberLength AND mY > 2 AND mY < (idewy - 5) AND ShowLineNumbers THEN
|
||||||
'line numbers are visible and been clicked
|
'line numbers are visible and been clicked
|
||||||
ideselect = 1
|
ideselect = 1
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
|
@ -2828,7 +2828,7 @@ FUNCTION ide2 (ignore)
|
||||||
IF idecy > iden THEN idecy = iden
|
IF idecy > iden THEN idecy = iden
|
||||||
ELSE
|
ELSE
|
||||||
'Ok, there is a selection. But we'll override it if the click was outside it
|
'Ok, there is a selection. But we'll override it if the click was outside it
|
||||||
IF (mX - 1 + idesx - 1) - maxLineNumberLength < sx1 OR (mX - 1 + idesx - 1) - maxLineNumberLength > sx2 THEN
|
IF (mX - 1 + idesx - 1) - maxLineNumberLength < sx1 OR (mX - 1 + idesx - 1) - maxLineNumberLength > sx2 THEN
|
||||||
ideselect = 0
|
ideselect = 0
|
||||||
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
idecx = (mX - 1 + idesx - 1) - maxLineNumberLength
|
||||||
idecy = mY - 2 + idesy - 1
|
idecy = mY - 2 + idesy - 1
|
||||||
|
@ -8289,7 +8289,7 @@ SUB ideshowtext
|
||||||
LOOP
|
LOOP
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
FOR i = 1 TO LEN (listOfCustomKeywords$)
|
FOR i = 1 TO LEN(listOfCustomKeywords$)
|
||||||
checkChar = ASC(listOfCustomKeywords$, i)
|
checkChar = ASC(listOfCustomKeywords$, i)
|
||||||
IF checkChar = 64 THEN
|
IF checkChar = 64 THEN
|
||||||
IF RIGHT$(tempList$, 1) <> "@" THEN tempList$ = tempList$ + "@"
|
IF RIGHT$(tempList$, 1) <> "@" THEN tempList$ = tempList$ + "@"
|
||||||
|
@ -8719,7 +8719,7 @@ SUB ideshowtext
|
||||||
'Restore BG color in case a matching bracket was printed with different BG
|
'Restore BG color in case a matching bracket was printed with different BG
|
||||||
IF l = idecy THEN COLOR , 6
|
IF l = idecy THEN COLOR , 6
|
||||||
IF isKeyword > 0 THEN isKeyword = isKeyword - 1
|
IF isKeyword > 0 THEN isKeyword = isKeyword - 1
|
||||||
if isKeyword = 0 THEN checkKeyword$ = "": metacommand = 0: is_Number = 0: isCustomKeyword = 0
|
IF isKeyword = 0 THEN checkKeyword$ = "": metacommand = 0: is_Number = 0: isCustomKeyword = 0
|
||||||
NEXT m
|
NEXT m
|
||||||
|
|
||||||
'apply selection color change if necessary
|
'apply selection color change if necessary
|
||||||
|
@ -9448,7 +9448,7 @@ SUB ideobjupdate (o AS idedbotype, focus, f, focusoffset, kk$, altletter$, mb, m
|
||||||
o.issel = 0
|
o.issel = 0
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
IF k <> 8 AND k <> 9 AND k <> 0 AND k <> 10 AND k <> 13 AND k <> 26 AND k <> 255 AND ((KALT = 0 AND KCTRL = 0) OR (KALT = -1 AND KCTRL = -1)) THEN
|
IF k <> 8 AND k <> 9 AND k <> 0 AND k <> 10 AND k <> 13 AND k <> 26 AND k <> 255 AND ((KALT = 0 AND KCTRL = 0) OR (KALT = -1 AND KCTRL = -1)) THEN
|
||||||
IF o.issel THEN
|
IF o.issel THEN
|
||||||
sx1 = o.sx1: sx2 = o.v1
|
sx1 = o.sx1: sx2 = o.v1
|
||||||
IF sx1 > sx2 THEN SWAP sx1, sx2
|
IF sx1 > sx2 THEN SWAP sx1, sx2
|
||||||
|
@ -12159,7 +12159,7 @@ FUNCTION idechoosecolorsbox
|
||||||
|
|
||||||
'Build scheme string
|
'Build scheme string
|
||||||
SchemeString$ = SchemeString$ + "|"
|
SchemeString$ = SchemeString$ + "|"
|
||||||
FOR j = 1 to 9
|
FOR j = 1 TO 9
|
||||||
SELECT CASE j
|
SELECT CASE j
|
||||||
CASE 1: CurrentColor~& = IDETextColor
|
CASE 1: CurrentColor~& = IDETextColor
|
||||||
CASE 2: CurrentColor~& = IDEKeywordColor
|
CASE 2: CurrentColor~& = IDEKeywordColor
|
||||||
|
@ -12197,7 +12197,7 @@ FUNCTION idechoosecolorsbox
|
||||||
SchemeString$ = SchemeString$ + "|"
|
SchemeString$ = SchemeString$ + "|"
|
||||||
|
|
||||||
'Build scheme string
|
'Build scheme string
|
||||||
FOR j = 1 to 9
|
FOR j = 1 TO 9
|
||||||
SELECT CASE j
|
SELECT CASE j
|
||||||
CASE 1: CurrentColor~& = IDETextColor
|
CASE 1: CurrentColor~& = IDETextColor
|
||||||
CASE 2: CurrentColor~& = IDEKeywordColor
|
CASE 2: CurrentColor~& = IDEKeywordColor
|
||||||
|
@ -12372,7 +12372,7 @@ FUNCTION idechoosecolorsbox
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Keywords"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Keywords"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Numbers"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Numbers"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Strings"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Strings"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Metacommand/custom keywords
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Metacommand/custom keywords"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Comments"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Comments"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Background"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Background"
|
||||||
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Current line background"
|
i = i + 1: l$ = l$ + sep + SelectionIndicator$(i) + "Current line background"
|
||||||
|
@ -14520,16 +14520,16 @@ END SUB
|
||||||
|
|
||||||
'After Cormen, Leiserson, Rivest & Stein "Introduction To Algoritms" via Wikipedia
|
'After Cormen, Leiserson, Rivest & Stein "Introduction To Algoritms" via Wikipedia
|
||||||
SUB sort (arr() AS STRING * 998)
|
SUB sort (arr() AS STRING * 998)
|
||||||
FOR i& = LBOUND(arr) + 1 TO UBOUND(arr)
|
FOR i& = LBOUND(arr) + 1 TO UBOUND(arr)
|
||||||
x$ = arr(i&)
|
x$ = arr(i&)
|
||||||
j& = i& - 1
|
j& = i& - 1
|
||||||
WHILE j& >= LBOUND(arr)
|
WHILE j& >= LBOUND(arr)
|
||||||
IF arr(j&) <= x$ THEN EXIT WHILE
|
IF arr(j&) <= x$ THEN EXIT WHILE
|
||||||
arr$(j& + 1) = arr$(j&)
|
arr$(j& + 1) = arr$(j&)
|
||||||
j& = j& - 1
|
j& = j& - 1
|
||||||
WEND
|
WEND
|
||||||
arr$(j& + 1) = x$
|
arr$(j& + 1) = x$
|
||||||
NEXT i&
|
NEXT i&
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
FUNCTION FindProposedTitle$
|
FUNCTION FindProposedTitle$
|
||||||
|
@ -14731,7 +14731,7 @@ SUB LoadColorSchemes
|
||||||
ELSEIF LEN(MID$(value$, FoundPipe + 1)) = 54 THEN
|
ELSEIF LEN(MID$(value$, FoundPipe + 1)) = 54 THEN
|
||||||
'Version 1.1 schemes (only 6 colors)
|
'Version 1.1 schemes (only 6 colors)
|
||||||
'Convert to extended scheme:
|
'Convert to extended scheme:
|
||||||
temp$ = LEFT$(value$, FoundPipe)
|
temp$ = LEFT$(value$, FoundPipe)
|
||||||
temp$ = temp$ + MID$(value$, FoundPipe + 1, 9) + "069147216245128177"
|
temp$ = temp$ + MID$(value$, FoundPipe + 1, 9) + "069147216245128177"
|
||||||
temp$ = temp$ + MID$(value$, FoundPipe + 10) + "000147177"
|
temp$ = temp$ + MID$(value$, FoundPipe + 10) + "000147177"
|
||||||
ColorSchemes$(TotalColorSchemes) = temp$
|
ColorSchemes$(TotalColorSchemes) = temp$
|
||||||
|
|
File diff suppressed because it is too large
Load diff
23944
source/qb64.bas
23944
source/qb64.bas
File diff suppressed because it is too large
Load diff
|
@ -1,405 +1,405 @@
|
||||||
FUNCTION gl2qb_type_convert$ (a$, symbol$, typ, ctyp$)
|
FUNCTION gl2qb_type_convert$ (a$, symbol$, typ, ctyp$)
|
||||||
symbol$ = ""
|
symbol$ = ""
|
||||||
|
|
||||||
'unsigned int
|
'unsigned int
|
||||||
IF a$ = "GLenum" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
IF a$ = "GLenum" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
||||||
IF a$ = "GLbitfield" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
IF a$ = "GLbitfield" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
||||||
IF a$ = "GLuint" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
IF a$ = "GLuint" THEN b$ = "_UNSIGNED LONG": symbol$ = "~&": typ = ULONGTYPE - ISPOINTER: ctyp$ = "uint32"
|
||||||
|
|
||||||
'int
|
'int
|
||||||
IF a$ = "GLint" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
|
IF a$ = "GLint" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
|
||||||
IF a$ = "GLsizei" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
|
IF a$ = "GLsizei" THEN b$ = "LONG": symbol$ = "&": typ = LONGTYPE - ISPOINTER: ctyp$ = "int32"
|
||||||
|
|
||||||
'unsigned char
|
'unsigned char
|
||||||
IF a$ = "GLboolean" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
|
IF a$ = "GLboolean" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
|
||||||
IF a$ = "GLubyte" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
|
IF a$ = "GLubyte" THEN b$ = "_UNSIGNED _BYTE": symbol$ = "~%%": typ = UBYTETYPE - ISPOINTER: ctyp$ = "uint8"
|
||||||
|
|
||||||
'char
|
'char
|
||||||
IF a$ = "GLbyte" THEN b$ = "_BYTE": symbol$ = "%%": typ = BYTETYPE - ISPOINTER: ctyp$ = "int8"
|
IF a$ = "GLbyte" THEN b$ = "_BYTE": symbol$ = "%%": typ = BYTETYPE - ISPOINTER: ctyp$ = "int8"
|
||||||
|
|
||||||
'unsigned short
|
'unsigned short
|
||||||
IF a$ = "GLushort" THEN b$ = "_UNSIGNED INTEGER": symbol$ = "~%": typ = UINTEGERTYPE - ISPOINTER: ctyp$ = "uint16"
|
IF a$ = "GLushort" THEN b$ = "_UNSIGNED INTEGER": symbol$ = "~%": typ = UINTEGERTYPE - ISPOINTER: ctyp$ = "uint16"
|
||||||
|
|
||||||
'short
|
'short
|
||||||
IF a$ = "GLshort" THEN b$ = "INTEGER": symbol$ = "%": typ = INTEGERTYPE - ISPOINTER: ctyp$ = "int16"
|
IF a$ = "GLshort" THEN b$ = "INTEGER": symbol$ = "%": typ = INTEGERTYPE - ISPOINTER: ctyp$ = "int16"
|
||||||
|
|
||||||
'float
|
'float
|
||||||
IF a$ = "GLfloat" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
|
IF a$ = "GLfloat" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
|
||||||
IF a$ = "GLclampf" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
|
IF a$ = "GLclampf" THEN b$ = "SINGLE": symbol$ = "!": typ = SINGLETYPE - ISPOINTER: ctyp$ = "float"
|
||||||
|
|
||||||
'double
|
'double
|
||||||
IF a$ = "GLdouble" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
|
IF a$ = "GLdouble" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
|
||||||
IF a$ = "GLclampd" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
|
IF a$ = "GLclampd" THEN b$ = "DOUBLE": symbol$ = "#": typ = DOUBLETYPE - ISPOINTER: ctyp$ = "double"
|
||||||
|
|
||||||
'void
|
'void
|
||||||
IF a$ = "GLvoid" THEN b$ = "_OFFSET": symbol$ = "%&": typ = OFFSETTYPE - ISPOINTER: ctyp$ = "ptrszint"
|
IF a$ = "GLvoid" THEN b$ = "_OFFSET": symbol$ = "%&": typ = OFFSETTYPE - ISPOINTER: ctyp$ = "ptrszint"
|
||||||
|
|
||||||
'typedef unsigned int GLenum;
|
'typedef unsigned int GLenum;
|
||||||
'typedef unsigned char GLboolean;
|
'typedef unsigned char GLboolean;
|
||||||
'typedef unsigned int GLbitfield;
|
'typedef unsigned int GLbitfield;
|
||||||
'typedef signed char GLbyte;
|
'typedef signed char GLbyte;
|
||||||
'typedef short GLshort;
|
'typedef short GLshort;
|
||||||
'typedef int GLint;
|
'typedef int GLint;
|
||||||
'typedef int GLsizei;
|
'typedef int GLsizei;
|
||||||
'typedef unsigned char GLubyte;
|
'typedef unsigned char GLubyte;
|
||||||
'typedef unsigned short GLushort;
|
'typedef unsigned short GLushort;
|
||||||
'typedef unsigned int GLuint;
|
'typedef unsigned int GLuint;
|
||||||
'typedef float GLfloat;
|
'typedef float GLfloat;
|
||||||
'typedef float GLclampf;
|
'typedef float GLclampf;
|
||||||
'typedef double GLdouble;
|
'typedef double GLdouble;
|
||||||
'typedef double GLclampd;
|
'typedef double GLclampd;
|
||||||
'typedef void GLvoid;
|
'typedef void GLvoid;
|
||||||
|
|
||||||
IF b$ = "" THEN PRINT "Unknown type:" + a$: END
|
IF b$ = "" THEN PRINT "Unknown type:" + a$: END
|
||||||
gl2qb_type_convert$ = b$
|
gl2qb_type_convert$ = b$
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
FUNCTION readchunk$ (a$, last_character$)
|
FUNCTION readchunk$ (a$, last_character$)
|
||||||
a$ = LTRIM$(RTRIM$(a$))
|
a$ = LTRIM$(RTRIM$(a$))
|
||||||
FOR x = 1 TO LEN(a$)
|
FOR x = 1 TO LEN(a$)
|
||||||
c = ASC(a$, x)
|
c = ASC(a$, x)
|
||||||
IF c = 32 OR c = 44 OR c = 40 OR c = 41 THEN last_character$ = CHR$(c): readchunk$ = LEFT$(a$, x - 1): a$ = LTRIM$(RIGHT$(a$, LEN(a$) - x)): EXIT FUNCTION
|
IF c = 32 OR c = 44 OR c = 40 OR c = 41 THEN last_character$ = CHR$(c): readchunk$ = LEFT$(a$, x - 1): a$ = LTRIM$(RIGHT$(a$, LEN(a$) - x)): EXIT FUNCTION
|
||||||
NEXT
|
NEXT
|
||||||
readchunk$ = a$: last_character$ = "": a$ = ""
|
readchunk$ = a$: last_character$ = "": a$ = ""
|
||||||
END FUNCTION
|
END FUNCTION
|
||||||
|
|
||||||
|
|
||||||
SUB gl_scan_header
|
SUB gl_scan_header
|
||||||
|
|
||||||
IF GL_KIT THEN hk = FREEFILE: OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_kit.bas" FOR OUTPUT AS #hk
|
IF GL_KIT THEN hk = FREEFILE: OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_kit.bas" FOR OUTPUT AS #hk
|
||||||
IF GL_KIT THEN PRINT #hk, "DECLARE LIBRARY"
|
IF GL_KIT THEN PRINT #hk, "DECLARE LIBRARY"
|
||||||
|
|
||||||
d = 0: a2$ = ""
|
d = 0: a2$ = ""
|
||||||
h = FREEFILE
|
h = FREEFILE
|
||||||
OPEN "internal\c\parts\core\gl_header_for_parsing\gl.h" FOR INPUT AS #h
|
OPEN "internal\c\parts\core\gl_header_for_parsing\gl.h" FOR INPUT AS #h
|
||||||
DO UNTIL EOF(h)
|
DO UNTIL EOF(h)
|
||||||
LINE INPUT #h, a$
|
LINE INPUT #h, a$
|
||||||
IF LEN(a$) THEN
|
IF LEN(a$) THEN
|
||||||
a$ = LTRIM$(RTRIM$(a$))
|
a$ = LTRIM$(RTRIM$(a$))
|
||||||
IF LEFT$(a$, 8) = "#define " THEN
|
IF LEFT$(a$, 8) = "#define " THEN
|
||||||
a2$ = ""
|
a2$ = ""
|
||||||
a$ = a$ + " "
|
a$ = a$ + " "
|
||||||
FOR x = 1 TO LEN(a$)
|
FOR x = 1 TO LEN(a$)
|
||||||
c = ASC(a$, x)
|
c = ASC(a$, x)
|
||||||
IF c = 32 THEN
|
IF c = 32 THEN
|
||||||
FOR x2 = 1 TO LEN(a2$)
|
FOR x2 = 1 TO LEN(a2$)
|
||||||
c2 = ASC(a2$, x2)
|
c2 = ASC(a2$, x2)
|
||||||
IF c2 >= 65 AND c2 <= 90 THEN GOTO define_ok
|
IF c2 >= 65 AND c2 <= 90 THEN GOTO define_ok
|
||||||
IF c2 >= 48 AND c2 <= 57 AND x2 <> 1 THEN GOTO define_ok
|
IF c2 >= 48 AND c2 <= 57 AND x2 <> 1 THEN GOTO define_ok
|
||||||
IF c2 = 95 THEN GOTO define_ok
|
IF c2 = 95 THEN GOTO define_ok
|
||||||
GOTO define_not_ok
|
GOTO define_not_ok
|
||||||
define_ok:
|
define_ok:
|
||||||
NEXT
|
|
||||||
value$ = LTRIM$(RTRIM$(RIGHT$(a$, LEN(a$) - x)))
|
|
||||||
IF LEN(value$) = 0 THEN GOTO define_not_ok
|
|
||||||
|
|
||||||
IF LEFT$(value$, 2) = "0x" THEN
|
|
||||||
value&& = VAL("&H" + RIGHT$(value$, LEN(value$) - 2) + "&&")
|
|
||||||
'PRINT a2$, value&&
|
|
||||||
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
|
|
||||||
ELSEIF ASC(value$) >= 48 AND ASC(value$) <= 57 THEN
|
|
||||||
value&& = VAL(value$)
|
|
||||||
'PRINT a2$, value&&
|
|
||||||
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
|
|
||||||
ELSE
|
|
||||||
'PRINT a2$, value$, "?"
|
|
||||||
FOR i = 1 TO d
|
|
||||||
IF GL_DEFINES(i) = value$ THEN
|
|
||||||
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = GL_DEFINES_VALUE(i)
|
|
||||||
'PRINT a2$, GL_DEFINES_VALUE(i)
|
|
||||||
EXIT FOR
|
|
||||||
END IF
|
|
||||||
NEXT
|
NEXT
|
||||||
|
value$ = LTRIM$(RTRIM$(RIGHT$(a$, LEN(a$) - x)))
|
||||||
|
IF LEN(value$) = 0 THEN GOTO define_not_ok
|
||||||
|
|
||||||
|
IF LEFT$(value$, 2) = "0x" THEN
|
||||||
|
value&& = VAL("&H" + RIGHT$(value$, LEN(value$) - 2) + "&&")
|
||||||
|
'PRINT a2$, value&&
|
||||||
|
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
|
||||||
|
ELSEIF ASC(value$) >= 48 AND ASC(value$) <= 57 THEN
|
||||||
|
value&& = VAL(value$)
|
||||||
|
'PRINT a2$, value&&
|
||||||
|
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = value&&
|
||||||
|
ELSE
|
||||||
|
'PRINT a2$, value$, "?"
|
||||||
|
FOR i = 1 TO d
|
||||||
|
IF GL_DEFINES(i) = value$ THEN
|
||||||
|
d = d + 1: GL_DEFINES(d) = a2$: GL_DEFINES_VALUE(d) = GL_DEFINES_VALUE(i)
|
||||||
|
'PRINT a2$, GL_DEFINES_VALUE(i)
|
||||||
|
EXIT FOR
|
||||||
|
END IF
|
||||||
|
NEXT
|
||||||
|
END IF
|
||||||
|
GOTO got_define
|
||||||
|
define_not_ok:
|
||||||
|
a2$ = ""
|
||||||
|
ELSE
|
||||||
|
a2$ = a2$ + CHR$(c)
|
||||||
END IF
|
END IF
|
||||||
GOTO got_define
|
NEXT
|
||||||
define_not_ok:
|
got_define:
|
||||||
a2$ = ""
|
END IF '#define
|
||||||
|
|
||||||
|
|
||||||
|
IF RIGHT$(a$, 1) = ";" THEN
|
||||||
|
a2$ = readchunk(a$, l$): IF a2$ <> "WINGDIAPI" GOTO discard
|
||||||
|
ret_type$ = readchunk(a$, l$)
|
||||||
|
IF ret_type$ = "const" THEN ret_type$ = readchunk(a$, l$)
|
||||||
|
|
||||||
|
is_func = 0: IF ret_type$ <> "void" THEN is_func = 1
|
||||||
|
|
||||||
|
a2$ = readchunk(a$, l$)
|
||||||
|
IF a2$ = "*APIENTRY" THEN ret_type$ = ret_type$ + "*": a2$ = "APIENTRY"
|
||||||
|
IF a2$ <> "APIENTRY" THEN GOTO discard
|
||||||
|
|
||||||
|
GL_COMMANDS_LAST = GL_COMMANDS_LAST + 1
|
||||||
|
c = GL_COMMANDS_LAST
|
||||||
|
|
||||||
|
hc$ = ""
|
||||||
|
hd$ = ""
|
||||||
|
need_helper_function = 0
|
||||||
|
|
||||||
|
IF is_func THEN
|
||||||
|
GL_COMMANDS(c).subfunc = 1
|
||||||
|
IF GL_KIT THEN PRINT #hk, "FUNCTION ";
|
||||||
ELSE
|
ELSE
|
||||||
a2$ = a2$ + CHR$(c)
|
GL_COMMANDS(c).subfunc = 2
|
||||||
|
IF GL_KIT THEN PRINT #hk, "SUB ";
|
||||||
END IF
|
END IF
|
||||||
NEXT
|
|
||||||
got_define:
|
proc_name$ = readchunk(a$, l$)
|
||||||
END IF '#define
|
|
||||||
|
GL_COMMANDS(c).cn = "_" + proc_name$: IF GL_KIT THEN PRINT #hk, proc_name$;
|
||||||
|
GL_COMMANDS(c).callname = proc_name$
|
||||||
|
|
||||||
|
GL_COMMANDS(c).ret = 0
|
||||||
|
IF is_func THEN
|
||||||
|
pointer = 0: IF RIGHT$(ret_type$, 1) = "*" THEN pointer = 1
|
||||||
|
IF pointer THEN
|
||||||
|
t$ = "_OFFSET": s$ = "&&"
|
||||||
|
GL_COMMANDS(c).ret = OFFSETTYPE - ISPOINTER
|
||||||
|
hd$ = hd$ + "ptrszint "
|
||||||
|
need_helper_function = 1
|
||||||
|
ELSE
|
||||||
|
t$ = gl2qb_type_convert(ret_type$, s$, typ, ctyp$)
|
||||||
|
GL_COMMANDS(c).ret = typ
|
||||||
|
hd$ = hd$ + ctyp$ + " "
|
||||||
|
END IF
|
||||||
|
IF GL_KIT THEN PRINT #hk, s$;
|
||||||
|
hc$ = hc$ + "return (" + ctyp$ + ")(" + ret_type$ + ")"
|
||||||
|
ELSE
|
||||||
|
hd$ = hd$ + "void "
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF GL_KIT THEN PRINT #hk, "(";
|
||||||
|
|
||||||
|
hc$ = hc$ + proc_name$ + "("
|
||||||
|
hd$ = hd$ + "call_" + proc_name$ + "("
|
||||||
|
|
||||||
|
|
||||||
IF RIGHT$(a$, 1) = ";" THEN
|
GL_COMMANDS(c).args = 0
|
||||||
a2$ = readchunk(a$, l$): IF a2$ <> "WINGDIAPI" GOTO discard
|
GL_COMMANDS(c).arg = ""
|
||||||
ret_type$ = readchunk(a$, l$)
|
|
||||||
IF ret_type$ = "const" THEN ret_type$ = readchunk(a$, l$)
|
|
||||||
|
|
||||||
is_func = 0: IF ret_type$ <> "void" THEN is_func = 1
|
DO
|
||||||
|
|
||||||
a2$ = readchunk(a$, l$)
|
var_type$ = readchunk(a$, l$)
|
||||||
IF a2$ = "*APIENTRY" THEN ret_type$ = ret_type$ + "*": a2$ = "APIENTRY"
|
IF var_type$ = "" AND l$ = "(" THEN var_type$ = readchunk(a$, l$) 'space between fun name and "("?
|
||||||
IF a2$ <> "APIENTRY" THEN GOTO discard
|
IF var_type$ = "const" THEN var_type$ = readchunk(a$, l$)
|
||||||
|
IF var_type$ = "void" OR var_type$ = "" THEN GOTO no_arguments
|
||||||
|
IF l$ <> "," AND l$ <> ")" THEN
|
||||||
|
var_name$ = readchunk(a$, l$)
|
||||||
|
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
|
||||||
|
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
|
||||||
|
'Note: could be a poiner to a pointer
|
||||||
|
ELSE
|
||||||
|
var_name$ = "no_name"
|
||||||
|
END IF
|
||||||
|
|
||||||
GL_COMMANDS_LAST = GL_COMMANDS_LAST + 1
|
var_type_backup$ = var_type$
|
||||||
c = GL_COMMANDS_LAST
|
|
||||||
|
|
||||||
hc$ = ""
|
pointer = 0
|
||||||
hd$ = ""
|
|
||||||
need_helper_function = 0
|
|
||||||
|
|
||||||
IF is_func THEN
|
IF RIGHT$(var_type$, 1) = "*" THEN
|
||||||
GL_COMMANDS(c).subfunc = 1
|
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
|
||||||
IF GL_KIT THEN PRINT #hk, "FUNCTION ";
|
pointer = 1
|
||||||
ELSE
|
END IF
|
||||||
GL_COMMANDS(c).subfunc = 2
|
IF RIGHT$(var_type$, 1) = "*" THEN
|
||||||
IF GL_KIT THEN PRINT #hk, "SUB ";
|
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
|
||||||
END IF
|
pointer = 2
|
||||||
|
END IF
|
||||||
|
|
||||||
proc_name$ = readchunk(a$, l$)
|
IF pointer = 2 THEN
|
||||||
|
qb_type$ = "_OFFSET" 'it's the offset of an offset
|
||||||
|
ELSE
|
||||||
|
qb_type$ = gl2qb_type_convert$(var_type$, s$, typ, ctyp$)
|
||||||
|
END IF
|
||||||
|
|
||||||
GL_COMMANDS(c).cn = "_" + proc_name$: IF GL_KIT THEN PRINT #hk, proc_name$;
|
'IF pointer THEN need_helper_function = 1
|
||||||
GL_COMMANDS(c).callname = proc_name$
|
|
||||||
|
|
||||||
GL_COMMANDS(c).ret = 0
|
|
||||||
IF is_func THEN
|
|
||||||
pointer = 0: IF RIGHT$(ret_type$, 1) = "*" THEN pointer = 1
|
|
||||||
IF pointer THEN
|
|
||||||
t$ = "_OFFSET": s$ = "&&"
|
|
||||||
GL_COMMANDS(c).ret = OFFSETTYPE - ISPOINTER
|
|
||||||
hd$ = hd$ + "ptrszint "
|
|
||||||
need_helper_function = 1
|
need_helper_function = 1
|
||||||
ELSE
|
|
||||||
t$ = gl2qb_type_convert(ret_type$, s$, typ, ctyp$)
|
IF GL_KIT THEN
|
||||||
GL_COMMANDS(c).ret = typ
|
IF pointer = 0 THEN PRINT #hk, "BYVAL ";
|
||||||
hd$ = hd$ + ctyp$ + " "
|
PRINT #hk, var_name$ + " AS " + qb_type$;
|
||||||
|
IF l$ <> ")" THEN PRINT #hk, ",";
|
||||||
|
END IF
|
||||||
|
|
||||||
|
IF pointer = 0 THEN
|
||||||
|
arg$ = MKL$(typ)
|
||||||
|
END IF
|
||||||
|
IF pointer = 1 THEN 'all pointers convert to BYVAL _OFFSET
|
||||||
|
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
|
||||||
|
ctyp$ = "ptrszint"
|
||||||
|
END IF
|
||||||
|
IF pointer = 2 THEN 'all pointers-to-pointers convert to xxx"BYREF"xxx BYVAL _OFFSET
|
||||||
|
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
|
||||||
|
ctyp$ = "ptrszint"
|
||||||
|
'***this is important or you lose the ability to specify any offset, only the offset of a variable of type
|
||||||
|
' _OFFSET
|
||||||
|
' arg$ = MKL$(OFFSETTYPE)
|
||||||
|
' ctyp$ = "ptrszint*"
|
||||||
|
END IF
|
||||||
|
|
||||||
|
GL_COMMANDS(c).args = GL_COMMANDS(c).args + 1
|
||||||
|
|
||||||
|
MID$(GL_COMMANDS(c).arg, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
|
||||||
|
'z$ = GL_COMMANDS(c).arg
|
||||||
|
'MID$(z$, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
|
||||||
|
'GL_COMMANDS(c).arg = z$
|
||||||
|
|
||||||
|
letter$ = CHR$(96 + GL_COMMANDS(c).args)
|
||||||
|
|
||||||
|
hc$ = hc$ + "(" + var_type_backup$ + ")" + letter$
|
||||||
|
hd$ = hd$ + ctyp$ + " " + letter$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF l$ <> ")" THEN hc$ = hc$ + ",": hd$ = hd$ + ","
|
||||||
|
|
||||||
|
LOOP UNTIL l$ = ")"
|
||||||
|
no_arguments:
|
||||||
|
|
||||||
|
|
||||||
|
hd$ = hd$ + "){"
|
||||||
|
hc$ = hc$ + ");"
|
||||||
|
IF GL_KIT THEN PRINT #hk, ")"
|
||||||
|
h$ = hd$ + CRLF + "if (!sub_gl_called) error(270);" + CRLF + hc$ + CRLF + "}" + CRLF
|
||||||
|
|
||||||
|
IF need_helper_function THEN 'do we need the helper function for this command?
|
||||||
|
GL_HELPER_CODE = GL_HELPER_CODE + h$
|
||||||
|
GL_COMMANDS(c).callname = "call_" + proc_name$
|
||||||
END IF
|
END IF
|
||||||
IF GL_KIT THEN PRINT #hk, s$;
|
|
||||||
hc$ = hc$ + "return (" + ctyp$ + ")(" + ret_type$ + ")"
|
|
||||||
ELSE
|
IF proc_name$ = "glGetString" THEN
|
||||||
hd$ = hd$ + "void "
|
GL_COMMANDS(c).ret = STRINGTYPE
|
||||||
|
GL_COMMANDS(c).callname = "( char* )" + RTRIM$(GL_COMMANDS(c).callname)
|
||||||
|
END IF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
IF GL_KIT THEN PRINT #hk, "(";
|
|
||||||
|
|
||||||
hc$ = hc$ + proc_name$ + "("
|
|
||||||
hd$ = hd$ + "call_" + proc_name$ + "("
|
|
||||||
|
|
||||||
|
|
||||||
GL_COMMANDS(c).args = 0
|
|
||||||
GL_COMMANDS(c).arg = ""
|
|
||||||
|
|
||||||
DO
|
|
||||||
|
|
||||||
var_type$ = readchunk(a$, l$)
|
|
||||||
IF var_type$ = "" AND l$ = "(" THEN var_type$ = readchunk(a$, l$) 'space between fun name and "("?
|
|
||||||
IF var_type$ = "const" THEN var_type$ = readchunk(a$, l$)
|
|
||||||
IF var_type$ = "void" OR var_type$ = "" THEN GOTO no_arguments
|
|
||||||
IF l$ <> "," AND l$ <> ")" THEN
|
|
||||||
var_name$ = readchunk(a$, l$)
|
|
||||||
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
|
|
||||||
IF LEFT$(var_name$, 1) = "*" THEN var_type$ = var_type$ + "*": var_name$ = RIGHT$(var_name$, LEN(var_name$) - 1)
|
|
||||||
'Note: could be a poiner to a pointer
|
|
||||||
ELSE
|
|
||||||
var_name$ = "no_name"
|
|
||||||
END IF
|
|
||||||
|
|
||||||
var_type_backup$ = var_type$
|
|
||||||
|
|
||||||
pointer = 0
|
|
||||||
|
|
||||||
IF RIGHT$(var_type$, 1) = "*" THEN
|
|
||||||
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
|
|
||||||
pointer = 1
|
|
||||||
END IF
|
|
||||||
IF RIGHT$(var_type$, 1) = "*" THEN
|
|
||||||
var_type$ = LEFT$(var_type$, LEN(var_type$) - 1)
|
|
||||||
pointer = 2
|
|
||||||
END IF
|
|
||||||
|
|
||||||
IF pointer = 2 THEN
|
|
||||||
qb_type$ = "_OFFSET" 'it's the offset of an offset
|
|
||||||
ELSE
|
|
||||||
qb_type$ = gl2qb_type_convert$(var_type$, s$, typ, ctyp$)
|
|
||||||
END IF
|
|
||||||
|
|
||||||
'IF pointer THEN need_helper_function = 1
|
|
||||||
need_helper_function = 1
|
|
||||||
|
|
||||||
IF GL_KIT THEN
|
|
||||||
IF pointer = 0 THEN PRINT #hk, "BYVAL ";
|
|
||||||
PRINT #hk, var_name$ + " AS " + qb_type$;
|
|
||||||
IF l$ <> ")" THEN PRINT #hk, ",";
|
|
||||||
END IF
|
|
||||||
|
|
||||||
IF pointer = 0 THEN
|
|
||||||
arg$ = MKL$(typ)
|
|
||||||
END IF
|
|
||||||
IF pointer = 1 THEN 'all pointers convert to BYVAL _OFFSET
|
|
||||||
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
|
|
||||||
ctyp$ = "ptrszint"
|
|
||||||
END IF
|
|
||||||
IF pointer = 2 THEN 'all pointers-to-pointers convert to xxx"BYREF"xxx BYVAL _OFFSET
|
|
||||||
arg$ = MKL$(OFFSETTYPE - ISPOINTER)
|
|
||||||
ctyp$ = "ptrszint"
|
|
||||||
'***this is important or you lose the ability to specify any offset, only the offset of a variable of type
|
|
||||||
' _OFFSET
|
|
||||||
' arg$ = MKL$(OFFSETTYPE)
|
|
||||||
' ctyp$ = "ptrszint*"
|
|
||||||
END IF
|
|
||||||
|
|
||||||
GL_COMMANDS(c).args = GL_COMMANDS(c).args + 1
|
|
||||||
|
|
||||||
MID$(GL_COMMANDS(c).arg, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
|
|
||||||
'z$ = GL_COMMANDS(c).arg
|
|
||||||
'MID$(z$, (GL_COMMANDS(c).args - 1) * 4 + 1, 4) = arg$
|
|
||||||
'GL_COMMANDS(c).arg = z$
|
|
||||||
|
|
||||||
letter$ = CHR$(96 + GL_COMMANDS(c).args)
|
|
||||||
|
|
||||||
hc$ = hc$ + "(" + var_type_backup$ + ")" + letter$
|
|
||||||
hd$ = hd$ + ctyp$ + " " + letter$
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF l$ <> ")" THEN hc$ = hc$ + ",": hd$ = hd$ + ","
|
|
||||||
|
|
||||||
LOOP UNTIL l$ = ")"
|
|
||||||
no_arguments:
|
|
||||||
|
|
||||||
|
|
||||||
hd$ = hd$ + "){"
|
|
||||||
hc$ = hc$ + ");"
|
|
||||||
IF GL_KIT THEN PRINT #hk, ")"
|
|
||||||
h$ = hd$ + CRLF + "if (!sub_gl_called) error(270);" + CRLF + hc$ + CRLF + "}" + CRLF
|
|
||||||
|
|
||||||
IF need_helper_function THEN 'do we need the helper function for this command?
|
|
||||||
GL_HELPER_CODE = GL_HELPER_CODE + h$
|
|
||||||
GL_COMMANDS(c).callname = "call_" + proc_name$
|
|
||||||
END IF
|
|
||||||
|
|
||||||
|
|
||||||
IF proc_name$ = "glGetString" THEN
|
|
||||||
GL_COMMANDS(c).ret = STRINGTYPE
|
|
||||||
GL_COMMANDS(c).callname = "( char* )" + RTRIM$(GL_COMMANDS(c).callname)
|
|
||||||
END IF
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
discard:
|
||||||
|
LOOP
|
||||||
|
CLOSE #h
|
||||||
|
|
||||||
|
IF GL_KIT THEN PRINT #hk, "END DECLARE"
|
||||||
|
|
||||||
|
GL_DEFINES_LAST = d
|
||||||
|
REDIM _PRESERVE GL_DEFINES(d) AS STRING
|
||||||
|
'PRINT "Defines:"; GL_DEFINES_LAST
|
||||||
|
|
||||||
|
REDIM _PRESERVE GL_COMMANDS(GL_COMMANDS_LAST) AS GL_idstruct
|
||||||
|
'PRINT "Commands:"; GL_COMMANDS_LAST
|
||||||
|
|
||||||
|
IF GL_KIT THEN
|
||||||
|
FOR i = 1 TO GL_DEFINES_LAST
|
||||||
|
PRINT #hk, "CONST " + GL_DEFINES(i) + "="; GL_DEFINES_VALUE(i)
|
||||||
|
NEXT
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
'FOR i = 1 TO GL_COMMANDS_LAST
|
||||||
|
' PRINT ".cn="; GL_COMMANDS(i).cn
|
||||||
|
' PRINT ".callname="; GL_COMMANDS(i).callname
|
||||||
|
' PRINT ".subfunc="; GL_COMMANDS(i).subfunc
|
||||||
|
' PRINT ".args="; GL_COMMANDS(i).args
|
||||||
|
' _CONTROLCHR OFF
|
||||||
|
' PRINT ".arg=[" + RTRIM$(GL_COMMANDS(i).arg) + "]"
|
||||||
|
' _CONTROLCHR ON
|
||||||
|
' PRINT ".ret="; GL_COMMANDS(i).ret
|
||||||
|
'NEXT
|
||||||
|
|
||||||
|
IF GL_KIT THEN CLOSE #hk
|
||||||
|
|
||||||
|
|
||||||
|
fh = FREEFILE
|
||||||
|
OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_helper_code.h" FOR OUTPUT AS #fh
|
||||||
discard:
|
PRINT #fh, GL_HELPER_CODE
|
||||||
LOOP
|
CLOSE #fh
|
||||||
CLOSE #h
|
|
||||||
|
|
||||||
IF GL_KIT THEN PRINT #hk, "END DECLARE"
|
|
||||||
|
|
||||||
GL_DEFINES_LAST = d
|
|
||||||
REDIM _PRESERVE GL_DEFINES(d) AS STRING
|
|
||||||
'PRINT "Defines:"; GL_DEFINES_LAST
|
|
||||||
|
|
||||||
REDIM _PRESERVE GL_COMMANDS(GL_COMMANDS_LAST) AS GL_idstruct
|
|
||||||
'PRINT "Commands:"; GL_COMMANDS_LAST
|
|
||||||
|
|
||||||
IF GL_KIT THEN
|
|
||||||
FOR i = 1 TO GL_DEFINES_LAST
|
|
||||||
PRINT #hk, "CONST " + GL_DEFINES(i) + "="; GL_DEFINES_VALUE(i)
|
|
||||||
NEXT
|
|
||||||
END IF
|
|
||||||
|
|
||||||
'FOR i = 1 TO GL_COMMANDS_LAST
|
|
||||||
' PRINT ".cn="; GL_COMMANDS(i).cn
|
|
||||||
' PRINT ".callname="; GL_COMMANDS(i).callname
|
|
||||||
' PRINT ".subfunc="; GL_COMMANDS(i).subfunc
|
|
||||||
' PRINT ".args="; GL_COMMANDS(i).args
|
|
||||||
' _CONTROLCHR OFF
|
|
||||||
' PRINT ".arg=[" + RTRIM$(GL_COMMANDS(i).arg) + "]"
|
|
||||||
' _CONTROLCHR ON
|
|
||||||
' PRINT ".ret="; GL_COMMANDS(i).ret
|
|
||||||
'NEXT
|
|
||||||
|
|
||||||
IF GL_KIT THEN CLOSE #hk
|
|
||||||
|
|
||||||
|
|
||||||
fh = FREEFILE
|
|
||||||
OPEN "internal\c\parts\core\gl_header_for_parsing\temp\gl_helper_code.h" FOR OUTPUT AS #fh
|
|
||||||
PRINT #fh, GL_HELPER_CODE
|
|
||||||
CLOSE #fh
|
|
||||||
|
|
||||||
|
|
||||||
END SUB
|
END SUB
|
||||||
|
|
||||||
SUB gl_include_content
|
SUB gl_include_content
|
||||||
|
|
||||||
'add constants
|
'add constants
|
||||||
FOR d = 1 TO GL_DEFINES_LAST
|
FOR d = 1 TO GL_DEFINES_LAST
|
||||||
IF ASC(GL_DEFINES(d)) <> 95 THEN
|
IF ASC(GL_DEFINES(d)) <> 95 THEN
|
||||||
GL_DEFINES(d) = "_" + GL_DEFINES(d)
|
GL_DEFINES(d) = "_" + GL_DEFINES(d)
|
||||||
END IF
|
END IF
|
||||||
constlast = constlast + 1
|
constlast = constlast + 1
|
||||||
IF constlast > constmax THEN
|
IF constlast > constmax THEN
|
||||||
constmax = constmax * 2
|
constmax = constmax * 2
|
||||||
REDIM _PRESERVE constname(constmax) AS STRING
|
REDIM _PRESERVE constname(constmax) AS STRING
|
||||||
REDIM _PRESERVE constcname(constmax) AS STRING
|
REDIM _PRESERVE constcname(constmax) AS STRING
|
||||||
REDIM _PRESERVE constnamesymbol(constmax) AS STRING 'optional name symbol
|
REDIM _PRESERVE constnamesymbol(constmax) AS STRING 'optional name symbol
|
||||||
REDIM _PRESERVE consttype(constmax) AS LONG 'variable type number
|
REDIM _PRESERVE consttype(constmax) AS LONG 'variable type number
|
||||||
REDIM _PRESERVE constinteger(constmax) AS _INTEGER64
|
REDIM _PRESERVE constinteger(constmax) AS _INTEGER64
|
||||||
REDIM _PRESERVE constuinteger(constmax) AS _UNSIGNED _INTEGER64
|
REDIM _PRESERVE constuinteger(constmax) AS _UNSIGNED _INTEGER64
|
||||||
REDIM _PRESERVE constfloat(constmax) AS _FLOAT
|
REDIM _PRESERVE constfloat(constmax) AS _FLOAT
|
||||||
REDIM _PRESERVE conststring(constmax) AS STRING
|
REDIM _PRESERVE conststring(constmax) AS STRING
|
||||||
REDIM _PRESERVE constsubfunc(constmax) AS LONG
|
REDIM _PRESERVE constsubfunc(constmax) AS LONG
|
||||||
REDIM _PRESERVE constdefined(constmax) AS LONG
|
REDIM _PRESERVE constdefined(constmax) AS LONG
|
||||||
END IF
|
END IF
|
||||||
i = constlast
|
i = constlast
|
||||||
constname(i) = GL_DEFINES(d)
|
constname(i) = GL_DEFINES(d)
|
||||||
constcname(i) = GL_DEFINES(d)
|
constcname(i) = GL_DEFINES(d)
|
||||||
constnamesymbol(i) = "&&"
|
constnamesymbol(i) = "&&"
|
||||||
consttype(i) = INTEGER64TYPE - ISPOINTER
|
consttype(i) = INTEGER64TYPE - ISPOINTER
|
||||||
constinteger(i) = GL_DEFINES_VALUE(d)
|
constinteger(i) = GL_DEFINES_VALUE(d)
|
||||||
constsubfunc(i) = 0 'global
|
constsubfunc(i) = 0 'global
|
||||||
constdefined(i) = 1
|
constdefined(i) = 1
|
||||||
'add to hash table
|
'add to hash table
|
||||||
HashAdd constcname(i), HASHFLAG_CONSTANT, i
|
HashAdd constcname(i), HASHFLAG_CONSTANT, i
|
||||||
NEXT
|
NEXT
|
||||||
|
|
||||||
|
|
||||||
'add subs/functions
|
'add subs/functions
|
||||||
FOR c = 1 TO GL_COMMANDS_LAST
|
FOR c = 1 TO GL_COMMANDS_LAST
|
||||||
DIM g AS GL_idstruct
|
DIM g AS GL_idstruct
|
||||||
' TYPE GL_idstruct
|
' TYPE GL_idstruct
|
||||||
' cn AS STRING * 64 'case sensitive version of n
|
' cn AS STRING * 64 'case sensitive version of n
|
||||||
' subfunc AS INTEGER 'if function=1, sub=2
|
' subfunc AS INTEGER 'if function=1, sub=2
|
||||||
' callname AS STRING * 64
|
' callname AS STRING * 64
|
||||||
' args AS INTEGER
|
' args AS INTEGER
|
||||||
' arg AS STRING * 80 'similar to t
|
' arg AS STRING * 80 'similar to t
|
||||||
' ret AS LONG 'the value it returns if it is a function (again like t)
|
' ret AS LONG 'the value it returns if it is a function (again like t)
|
||||||
' END TYPE
|
' END TYPE
|
||||||
g = GL_COMMANDS(c)
|
g = GL_COMMANDS(c)
|
||||||
|
|
||||||
|
reginternalsubfunc = 1
|
||||||
|
clearid
|
||||||
|
id.ccall = 1 '*** important for handling string returns correctly ***
|
||||||
|
id.n = RTRIM$(g.cn)
|
||||||
|
s = g.subfunc
|
||||||
|
id.subfunc = s
|
||||||
|
id.callname = RTRIM$(g.callname)
|
||||||
|
id.args = g.args
|
||||||
|
id.arg = g.arg
|
||||||
|
id.ret = g.ret
|
||||||
|
regid
|
||||||
|
reginternalsubfunc = 0
|
||||||
|
NEXT
|
||||||
|
|
||||||
|
'add inline function definitions
|
||||||
|
|
||||||
|
'SUB gluPerspective (BYVAL fovy#, BYVAL aspect#, BYVAL zNear#, BYVAL zFar#)
|
||||||
reginternalsubfunc = 1
|
reginternalsubfunc = 1
|
||||||
clearid
|
clearid
|
||||||
id.ccall = 1 '*** important for handling string returns correctly ***
|
id.n = "_gluPerspective"
|
||||||
id.n = RTRIM$(g.cn)
|
id.subfunc = 2 'sub
|
||||||
s = g.subfunc
|
id.callname = "gluPerspective"
|
||||||
id.subfunc = s
|
id.args = 4
|
||||||
id.callname = RTRIM$(g.callname)
|
id.arg = MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER)
|
||||||
id.args = g.args
|
|
||||||
id.arg = g.arg
|
|
||||||
id.ret = g.ret
|
|
||||||
regid
|
regid
|
||||||
reginternalsubfunc = 0
|
reginternalsubfunc = 0
|
||||||
NEXT
|
|
||||||
|
|
||||||
'add inline function definitions
|
|
||||||
|
|
||||||
'SUB gluPerspective (BYVAL fovy#, BYVAL aspect#, BYVAL zNear#, BYVAL zFar#)
|
|
||||||
reginternalsubfunc = 1
|
|
||||||
clearid
|
|
||||||
id.n = "_gluPerspective"
|
|
||||||
id.subfunc = 2 'sub
|
|
||||||
id.callname = "gluPerspective"
|
|
||||||
id.args = 4
|
|
||||||
id.arg = MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER) + MKL$(DOUBLETYPE - ISPOINTER)
|
|
||||||
regid
|
|
||||||
reginternalsubfunc = 0
|
|
||||||
|
|
||||||
END SUB
|
END SUB
|
||||||
|
|
Loading…
Reference in a new issue