1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

More Bugfix...

-=-=-=-=-=-==

-Fix bug in camera follow script
-Fix negate operator not working in shader language
-Fix uninitialized pointer in raycast query API
This commit is contained in:
Juan Linietsky
2014-09-17 23:23:42 -03:00
parent 990f6cf50e
commit e0ce701c8c
5 changed files with 214 additions and 114 deletions

View File

@@ -38,8 +38,66 @@
class ShaderLanguage {
public:
enum TokenType {
TK_EMPTY,
TK_INDENTIFIER,
TK_TRUE,
TK_FALSE,
TK_REAL_CONSTANT,
TK_TYPE_VOID,
TK_TYPE_BOOL,
TK_TYPE_FLOAT,
TK_TYPE_VEC2,
TK_TYPE_VEC3,
TK_TYPE_VEC4,
TK_TYPE_MAT3,
TK_TYPE_MAT4,
TK_TYPE_TEXTURE,
TK_TYPE_CUBEMAP,
TK_TYPE_COLOR,
TK_OP_EQUAL,
TK_OP_NOT_EQUAL,
TK_OP_LESS,
TK_OP_LESS_EQUAL,
TK_OP_GREATER,
TK_OP_GREATER_EQUAL,
TK_OP_AND,
TK_OP_OR,
TK_OP_NOT,
TK_OP_ADD,
TK_OP_SUB,
TK_OP_MUL,
TK_OP_DIV,
TK_OP_NEG,
TK_OP_ASSIGN,
TK_OP_ASSIGN_ADD,
TK_OP_ASSIGN_SUB,
TK_OP_ASSIGN_MUL,
TK_OP_ASSIGN_DIV,
TK_CF_IF,
TK_CF_ELSE,
TK_CF_RETURN,
TK_BRACKET_OPEN,
TK_BRACKET_CLOSE,
TK_CURLY_BRACKET_OPEN,
TK_CURLY_BRACKET_CLOSE,
TK_PARENTHESIS_OPEN,
TK_PARENTHESIS_CLOSE,
TK_COMMA,
TK_SEMICOLON,
TK_PERIOD,
TK_UNIFORM,
TK_ERROR,
TK_MAX
};
/* COMPILER */
@@ -216,6 +274,16 @@ public:
ProgramNode() { type=TYPE_PROGRAM; }
};
struct Expression {
bool is_op;
union {
TokenType op;
Node *node;
};
};
typedef Error (*CompileFunc)(void*,ProgramNode*);
struct VarInfo {
@@ -228,60 +296,6 @@ private:
enum TokenType {
TK_EMPTY,
TK_INDENTIFIER,
TK_TRUE,
TK_FALSE,
TK_REAL_CONSTANT,
TK_TYPE_VOID,
TK_TYPE_BOOL,
TK_TYPE_FLOAT,
TK_TYPE_VEC2,
TK_TYPE_VEC3,
TK_TYPE_VEC4,
TK_TYPE_MAT3,
TK_TYPE_MAT4,
TK_TYPE_TEXTURE,
TK_TYPE_CUBEMAP,
TK_TYPE_COLOR,
TK_OP_EQUAL,
TK_OP_NOT_EQUAL,
TK_OP_LESS,
TK_OP_LESS_EQUAL,
TK_OP_GREATER,
TK_OP_GREATER_EQUAL,
TK_OP_AND,
TK_OP_OR,
TK_OP_NOT,
TK_OP_ADD,
TK_OP_SUB,
TK_OP_MUL,
TK_OP_DIV,
TK_OP_NEG,
TK_OP_ASSIGN,
TK_OP_ASSIGN_ADD,
TK_OP_ASSIGN_SUB,
TK_OP_ASSIGN_MUL,
TK_OP_ASSIGN_DIV,
TK_CF_IF,
TK_CF_ELSE,
TK_CF_RETURN,
TK_BRACKET_OPEN,
TK_BRACKET_CLOSE,
TK_CURLY_BRACKET_OPEN,
TK_CURLY_BRACKET_CLOSE,
TK_PARENTHESIS_OPEN,
TK_PARENTHESIS_CLOSE,
TK_COMMA,
TK_SEMICOLON,
TK_PERIOD,
TK_UNIFORM,
TK_ERROR,
TK_MAX
};
static const char * token_names[TK_MAX];
struct Token {