Bläddra i källkod

Added a proper Sort parameter to BSLFX

BearishSun 9 år sedan
förälder
incheckning
43f621975f

+ 1 - 1
Documentation/Manuals/Managed/BSL.md

@@ -268,7 +268,7 @@ Any references to PI outside of code-blocks will not be replaced with 3.14 and w
 ### Global shader properties
 ### Global shader properties
 On the top-most level you may also specify additional parameters along with "Parameters", "Blocks" and "Technique":
 On the top-most level you may also specify additional parameters along with "Parameters", "Blocks" and "Technique":
  - Separable = [true/false]; - Specifies if passes within the shader need to be executed sequentially, or could some other shader be executed in-between them. This is an optimization as it can allow the system to render geometry sharing the same passes all at once. False by default.
  - Separable = [true/false]; - Specifies if passes within the shader need to be executed sequentially, or could some other shader be executed in-between them. This is an optimization as it can allow the system to render geometry sharing the same passes all at once. False by default.
- - Sort - [FRONTTOBACK/BACKTOFRONT/NONE]; - Specifies in what order are the objects using this shader sorted before rendering.
+ - Sort - [FRONTTOBACK/BACKTOFRONT/NOSORT]; - Specifies in what order are the objects using this shader sorted before rendering.
  - Priority - int; - Specifies when will objects with this shader be rendered compared to other objects. Higher value means the objects will be rendered sooner. Priority has higher importance than sorting.
  - Priority - int; - Specifies when will objects with this shader be rendered compared to other objects. Higher value means the objects will be rendered sooner. Priority has higher importance than sorting.
  - Transparent - [true/false]; - Determines whether the shader renders transparent surfaces. Allows the renderer to better handle the shader.
  - Transparent - [true/false]; - Determines whether the shader renders transparent surfaces. Allows the renderer to better handle the shader.
  
  

+ 7 - 3
Source/BansheeSL/BsLexerFX.l

@@ -15,6 +15,7 @@ FLOAT			[0-9]+\.[0-9]+([eE][+-]?[0-9]+)?[fF]?
 STRING			\"[^"\n]*\"
 STRING			\"[^"\n]*\"
 IDENTIFIER		[_a-zA-Z][_a-zA-Z0-9]*
 IDENTIFIER		[_a-zA-Z][_a-zA-Z0-9]*
 WS				[ \r\n\t]*
 WS				[ \r\n\t]*
+SPACE			[ \t]
 SINGLEWS		[ \r\n\t]
 SINGLEWS		[ \r\n\t]
 ENDLINE			[\r\n]
 ENDLINE			[\r\n]
 COMMENT			\/\/[^\n]*
 COMMENT			\/\/[^\n]*
@@ -94,7 +95,7 @@ Block			{ return TOKEN_PARAMSBLOCK; }
 
 
 	/* Shader keywords */
 	/* Shader keywords */
 Separable		{ return TOKEN_SEPARABLE; }
 Separable		{ return TOKEN_SEPARABLE; }
-Queue			{ return TOKEN_QUEUE; }
+Sort			{ return TOKEN_SORT; }
 Priority		{ return TOKEN_PRIORITY; }
 Priority		{ return TOKEN_PRIORITY; }
 Transparent		{ return TOKEN_TRANSPARENT; }
 Transparent		{ return TOKEN_TRANSPARENT; }
 Technique		{ return TOKEN_TECHNIQUE; }
 Technique		{ return TOKEN_TECHNIQUE; }
@@ -238,6 +239,10 @@ ANISOC			{ yylval->intValue = FV_AnisotropicCmp; return TOKEN_FILTERVALUE; }
 STATIC			{ yylval->intValue = BUV_Static; return TOKEN_BUFFERUSAGE; }
 STATIC			{ yylval->intValue = BUV_Static; return TOKEN_BUFFERUSAGE; }
 DYNAMIC			{ yylval->intValue = BUV_Dynamic; return TOKEN_BUFFERUSAGE; }
 DYNAMIC			{ yylval->intValue = BUV_Dynamic; return TOKEN_BUFFERUSAGE; }
 
 
+FRONTTOBACK		{ yylval->intValue = QST_FrontToBack; return TOKEN_QUEUETYPE; }
+BACKTOFRONT		{ yylval->intValue = QST_BackToFront; return TOKEN_QUEUETYPE; }
+NOSORT			{ yylval->intValue = QST_None; return TOKEN_QUEUETYPE; }
+
 	/* Preprocessor */
 	/* Preprocessor */
 #include				{ BEGIN(INCLUDE); }
 #include				{ BEGIN(INCLUDE); }
 
 
@@ -270,14 +275,13 @@ DYNAMIC			{ yylval->intValue = BUV_Dynamic; return TOKEN_BUFFERUSAGE; }
 }
 }
 
 
 #define							{ BEGIN(DEFINE_COND); }
 #define							{ BEGIN(DEFINE_COND); }
-<DEFINE_COND>{WS}				{ /* Skip blank */ }
+<DEFINE_COND>{SPACE}			{ /* Skip blank */ }
 <DEFINE_COND>{IDENTIFIER}		{ addDefine(yyextra, yytext); BEGIN(DEFINE_COND_EXPR); }
 <DEFINE_COND>{IDENTIFIER}		{ addDefine(yyextra, yytext); BEGIN(DEFINE_COND_EXPR); }
 <DEFINE_COND>{ENDLINE}			{ BEGIN(INITIAL); }
 <DEFINE_COND>{ENDLINE}			{ BEGIN(INITIAL); }
 <DEFINE_COND>.					{ return yytext[0]; }
 <DEFINE_COND>.					{ return yytext[0]; }
 
 
 <DEFINE_COND_EXPR>{DEFINE_EXPR}		{ addDefineExpr(yyextra, yytext); BEGIN(INITIAL); }
 <DEFINE_COND_EXPR>{DEFINE_EXPR}		{ addDefineExpr(yyextra, yytext); BEGIN(INITIAL); }
 <DEFINE_COND_EXPR>{ENDLINE}			{ BEGIN(INITIAL); }
 <DEFINE_COND_EXPR>{ENDLINE}			{ BEGIN(INITIAL); }
-<DEFINE_COND_EXPR>.					{ return yytext[0]; }
 
 
 #undef							{ BEGIN(UNDEF_COND); }
 #undef							{ BEGIN(UNDEF_COND); }
 <UNDEF_COND>{WS}				{ /* Skip blank */ }
 <UNDEF_COND>{WS}				{ /* Skip blank */ }

+ 3 - 2
Source/BansheeSL/BsParserFX.y

@@ -96,6 +96,7 @@ typedef struct YYLTYPE {
 %token <intValue>	TOKEN_FILTERVALUE
 %token <intValue>	TOKEN_FILTERVALUE
 %token <intValue>	TOKEN_BLENDOPVALUE
 %token <intValue>	TOKEN_BLENDOPVALUE
 %token <intValue>	TOKEN_BUFFERUSAGE
 %token <intValue>	TOKEN_BUFFERUSAGE
+%token <intValue>	TOKEN_QUEUETYPE
 
 
 %token <intValue> TOKEN_FLOATTYPE 
 %token <intValue> TOKEN_FLOATTYPE 
 %token <intValue> TOKEN_FLOAT2TYPE 
 %token <intValue> TOKEN_FLOAT2TYPE 
@@ -145,7 +146,7 @@ typedef struct YYLTYPE {
 %token TOKEN_AUTO TOKEN_ALIAS TOKEN_SHARED TOKEN_USAGE
 %token TOKEN_AUTO TOKEN_ALIAS TOKEN_SHARED TOKEN_USAGE
 
 
 	/* Shader keywords */
 	/* Shader keywords */
-%token TOKEN_SEPARABLE TOKEN_QUEUE TOKEN_PRIORITY TOKEN_TRANSPARENT
+%token TOKEN_SEPARABLE TOKEN_SORT TOKEN_PRIORITY TOKEN_TRANSPARENT
 %token TOKEN_PARAMETERS TOKEN_BLOCKS TOKEN_TECHNIQUE
 %token TOKEN_PARAMETERS TOKEN_BLOCKS TOKEN_TECHNIQUE
 
 
 	/* Technique keywords */
 	/* Technique keywords */
@@ -287,7 +288,7 @@ shader_statement
 
 
 shader_option
 shader_option
 	: TOKEN_SEPARABLE '=' TOKEN_BOOLEAN ';'		{ $$.type = OT_Separable; $$.value.intValue = $3; }
 	: TOKEN_SEPARABLE '=' TOKEN_BOOLEAN ';'		{ $$.type = OT_Separable; $$.value.intValue = $3; }
-	| TOKEN_QUEUE '=' TOKEN_INTEGER ';'			{ $$.type = OT_Queue; $$.value.intValue = $3; }
+	| TOKEN_SORT '=' TOKEN_QUEUETYPE ';'		{ $$.type = OT_Sort; $$.value.intValue = $3; }
 	| TOKEN_PRIORITY '=' TOKEN_INTEGER ';'		{ $$.type = OT_Priority; $$.value.intValue = $3; }
 	| TOKEN_PRIORITY '=' TOKEN_INTEGER ';'		{ $$.type = OT_Priority; $$.value.intValue = $3; }
 	| TOKEN_TRANSPARENT '=' TOKEN_BOOLEAN ';'	{ $$.type = OT_Transparent; $$.value.intValue = $3; }
 	| TOKEN_TRANSPARENT '=' TOKEN_BOOLEAN ';'	{ $$.type = OT_Transparent; $$.value.intValue = $3; }
 	;
 	;

+ 7 - 1
Source/BansheeSL/Include/BsASTFX.h

@@ -30,6 +30,7 @@ typedef enum tagBlendOpValue BlendOpValue;
 typedef enum tagAddrModeValue AddrModeValue;
 typedef enum tagAddrModeValue AddrModeValue;
 typedef enum tagFilterValue FilterValue;
 typedef enum tagFilterValue FilterValue;
 typedef enum tagBufferUsageValue BufferUsageValue;
 typedef enum tagBufferUsageValue BufferUsageValue;
+typedef enum tagQueueSortTypeValue QueueSortTypeValue;
 
 
 enum tagNodeType
 enum tagNodeType
 {
 {
@@ -59,7 +60,7 @@ enum tagOptionType
 	OT_None = 0,
 	OT_None = 0,
 	OT_Separable,
 	OT_Separable,
 	OT_Priority,
 	OT_Priority,
-	OT_Queue,
+	OT_Sort,
 	OT_Transparent,
 	OT_Transparent,
 	OT_Technique,
 	OT_Technique,
 	OT_Renderer,
 	OT_Renderer,
@@ -194,6 +195,11 @@ enum tagBufferUsageValue
 	BUV_Static, BUV_Dynamic 
 	BUV_Static, BUV_Dynamic 
 };
 };
 
 
+enum tagQueueSortTypeValue
+{
+	QST_FrontToBack, QST_BackToFront, QST_None
+};
+
 struct tagNodeLink
 struct tagNodeLink
 {
 {
 	ASTFXNode* node;
 	ASTFXNode* node;

+ 1 - 1
Source/BansheeSL/Include/BsLexerFX.h

@@ -349,7 +349,7 @@ extern int yylex \
 #undef YY_DECL
 #undef YY_DECL
 #endif
 #endif
 
 
-#line 386 "..\\..\\Source\\BansheeSL\\BsLexerFX.l"
+#line 390 "..\\..\\Source\\BansheeSL\\BsLexerFX.l"
 
 
 
 
 #line 356 "BsLexerFX.h"
 #line 356 "BsLexerFX.h"

+ 101 - 100
Source/BansheeSL/Include/BsParserFX.h

@@ -119,105 +119,106 @@ typedef struct YYLTYPE {
      TOKEN_FILTERVALUE = 269,
      TOKEN_FILTERVALUE = 269,
      TOKEN_BLENDOPVALUE = 270,
      TOKEN_BLENDOPVALUE = 270,
      TOKEN_BUFFERUSAGE = 271,
      TOKEN_BUFFERUSAGE = 271,
-     TOKEN_FLOATTYPE = 272,
-     TOKEN_FLOAT2TYPE = 273,
-     TOKEN_FLOAT3TYPE = 274,
-     TOKEN_FLOAT4TYPE = 275,
-     TOKEN_INTTYPE = 276,
-     TOKEN_INT2TYPE = 277,
-     TOKEN_INT3TYPE = 278,
-     TOKEN_INT4TYPE = 279,
-     TOKEN_COLORTYPE = 280,
-     TOKEN_MAT2x2TYPE = 281,
-     TOKEN_MAT2x3TYPE = 282,
-     TOKEN_MAT2x4TYPE = 283,
-     TOKEN_MAT3x2TYPE = 284,
-     TOKEN_MAT3x3TYPE = 285,
-     TOKEN_MAT3x4TYPE = 286,
-     TOKEN_MAT4x2TYPE = 287,
-     TOKEN_MAT4x3TYPE = 288,
-     TOKEN_MAT4x4TYPE = 289,
-     TOKEN_SAMPLER1D = 290,
-     TOKEN_SAMPLER2D = 291,
-     TOKEN_SAMPLER3D = 292,
-     TOKEN_SAMPLERCUBE = 293,
-     TOKEN_SAMPLER2DMS = 294,
-     TOKEN_TEXTURE1D = 295,
-     TOKEN_TEXTURE2D = 296,
-     TOKEN_TEXTURE3D = 297,
-     TOKEN_TEXTURECUBE = 298,
-     TOKEN_TEXTURE2DMS = 299,
-     TOKEN_BYTEBUFFER = 300,
-     TOKEN_STRUCTBUFFER = 301,
-     TOKEN_RWTYPEDBUFFER = 302,
-     TOKEN_RWBYTEBUFFER = 303,
-     TOKEN_RWSTRUCTBUFFER = 304,
-     TOKEN_RWAPPENDBUFFER = 305,
-     TOKEN_RWCONSUMEBUFFER = 306,
-     TOKEN_PARAMSBLOCK = 307,
-     TOKEN_AUTO = 308,
-     TOKEN_ALIAS = 309,
-     TOKEN_SHARED = 310,
-     TOKEN_USAGE = 311,
-     TOKEN_SEPARABLE = 312,
-     TOKEN_QUEUE = 313,
-     TOKEN_PRIORITY = 314,
-     TOKEN_TRANSPARENT = 315,
-     TOKEN_PARAMETERS = 316,
-     TOKEN_BLOCKS = 317,
-     TOKEN_TECHNIQUE = 318,
-     TOKEN_RENDERER = 319,
-     TOKEN_LANGUAGE = 320,
-     TOKEN_PASS = 321,
-     TOKEN_VERTEX = 322,
-     TOKEN_FRAGMENT = 323,
-     TOKEN_GEOMETRY = 324,
-     TOKEN_HULL = 325,
-     TOKEN_DOMAIN = 326,
-     TOKEN_COMPUTE = 327,
-     TOKEN_COMMON = 328,
-     TOKEN_STENCILREF = 329,
-     TOKEN_FILLMODE = 330,
-     TOKEN_CULLMODE = 331,
-     TOKEN_DEPTHBIAS = 332,
-     TOKEN_SDEPTHBIAS = 333,
-     TOKEN_DEPTHCLIP = 334,
-     TOKEN_SCISSOR = 335,
-     TOKEN_MULTISAMPLE = 336,
-     TOKEN_AALINE = 337,
-     TOKEN_DEPTHREAD = 338,
-     TOKEN_DEPTHWRITE = 339,
-     TOKEN_COMPAREFUNC = 340,
-     TOKEN_STENCIL = 341,
-     TOKEN_STENCILREADMASK = 342,
-     TOKEN_STENCILWRITEMASK = 343,
-     TOKEN_STENCILOPFRONT = 344,
-     TOKEN_STENCILOPBACK = 345,
-     TOKEN_FAIL = 346,
-     TOKEN_ZFAIL = 347,
-     TOKEN_ALPHATOCOVERAGE = 348,
-     TOKEN_INDEPENDANTBLEND = 349,
-     TOKEN_TARGET = 350,
-     TOKEN_INDEX = 351,
-     TOKEN_BLEND = 352,
-     TOKEN_COLOR = 353,
-     TOKEN_ALPHA = 354,
-     TOKEN_WRITEMASK = 355,
-     TOKEN_SOURCE = 356,
-     TOKEN_DEST = 357,
-     TOKEN_OP = 358,
-     TOKEN_ADDRMODE = 359,
-     TOKEN_MINFILTER = 360,
-     TOKEN_MAGFILTER = 361,
-     TOKEN_MIPFILTER = 362,
-     TOKEN_MAXANISO = 363,
-     TOKEN_MIPBIAS = 364,
-     TOKEN_MIPMIN = 365,
-     TOKEN_MIPMAX = 366,
-     TOKEN_BORDERCOLOR = 367,
-     TOKEN_U = 368,
-     TOKEN_V = 369,
-     TOKEN_W = 370
+     TOKEN_QUEUETYPE = 272,
+     TOKEN_FLOATTYPE = 273,
+     TOKEN_FLOAT2TYPE = 274,
+     TOKEN_FLOAT3TYPE = 275,
+     TOKEN_FLOAT4TYPE = 276,
+     TOKEN_INTTYPE = 277,
+     TOKEN_INT2TYPE = 278,
+     TOKEN_INT3TYPE = 279,
+     TOKEN_INT4TYPE = 280,
+     TOKEN_COLORTYPE = 281,
+     TOKEN_MAT2x2TYPE = 282,
+     TOKEN_MAT2x3TYPE = 283,
+     TOKEN_MAT2x4TYPE = 284,
+     TOKEN_MAT3x2TYPE = 285,
+     TOKEN_MAT3x3TYPE = 286,
+     TOKEN_MAT3x4TYPE = 287,
+     TOKEN_MAT4x2TYPE = 288,
+     TOKEN_MAT4x3TYPE = 289,
+     TOKEN_MAT4x4TYPE = 290,
+     TOKEN_SAMPLER1D = 291,
+     TOKEN_SAMPLER2D = 292,
+     TOKEN_SAMPLER3D = 293,
+     TOKEN_SAMPLERCUBE = 294,
+     TOKEN_SAMPLER2DMS = 295,
+     TOKEN_TEXTURE1D = 296,
+     TOKEN_TEXTURE2D = 297,
+     TOKEN_TEXTURE3D = 298,
+     TOKEN_TEXTURECUBE = 299,
+     TOKEN_TEXTURE2DMS = 300,
+     TOKEN_BYTEBUFFER = 301,
+     TOKEN_STRUCTBUFFER = 302,
+     TOKEN_RWTYPEDBUFFER = 303,
+     TOKEN_RWBYTEBUFFER = 304,
+     TOKEN_RWSTRUCTBUFFER = 305,
+     TOKEN_RWAPPENDBUFFER = 306,
+     TOKEN_RWCONSUMEBUFFER = 307,
+     TOKEN_PARAMSBLOCK = 308,
+     TOKEN_AUTO = 309,
+     TOKEN_ALIAS = 310,
+     TOKEN_SHARED = 311,
+     TOKEN_USAGE = 312,
+     TOKEN_SEPARABLE = 313,
+     TOKEN_SORT = 314,
+     TOKEN_PRIORITY = 315,
+     TOKEN_TRANSPARENT = 316,
+     TOKEN_PARAMETERS = 317,
+     TOKEN_BLOCKS = 318,
+     TOKEN_TECHNIQUE = 319,
+     TOKEN_RENDERER = 320,
+     TOKEN_LANGUAGE = 321,
+     TOKEN_PASS = 322,
+     TOKEN_VERTEX = 323,
+     TOKEN_FRAGMENT = 324,
+     TOKEN_GEOMETRY = 325,
+     TOKEN_HULL = 326,
+     TOKEN_DOMAIN = 327,
+     TOKEN_COMPUTE = 328,
+     TOKEN_COMMON = 329,
+     TOKEN_STENCILREF = 330,
+     TOKEN_FILLMODE = 331,
+     TOKEN_CULLMODE = 332,
+     TOKEN_DEPTHBIAS = 333,
+     TOKEN_SDEPTHBIAS = 334,
+     TOKEN_DEPTHCLIP = 335,
+     TOKEN_SCISSOR = 336,
+     TOKEN_MULTISAMPLE = 337,
+     TOKEN_AALINE = 338,
+     TOKEN_DEPTHREAD = 339,
+     TOKEN_DEPTHWRITE = 340,
+     TOKEN_COMPAREFUNC = 341,
+     TOKEN_STENCIL = 342,
+     TOKEN_STENCILREADMASK = 343,
+     TOKEN_STENCILWRITEMASK = 344,
+     TOKEN_STENCILOPFRONT = 345,
+     TOKEN_STENCILOPBACK = 346,
+     TOKEN_FAIL = 347,
+     TOKEN_ZFAIL = 348,
+     TOKEN_ALPHATOCOVERAGE = 349,
+     TOKEN_INDEPENDANTBLEND = 350,
+     TOKEN_TARGET = 351,
+     TOKEN_INDEX = 352,
+     TOKEN_BLEND = 353,
+     TOKEN_COLOR = 354,
+     TOKEN_ALPHA = 355,
+     TOKEN_WRITEMASK = 356,
+     TOKEN_SOURCE = 357,
+     TOKEN_DEST = 358,
+     TOKEN_OP = 359,
+     TOKEN_ADDRMODE = 360,
+     TOKEN_MINFILTER = 361,
+     TOKEN_MAGFILTER = 362,
+     TOKEN_MIPFILTER = 363,
+     TOKEN_MAXANISO = 364,
+     TOKEN_MIPBIAS = 365,
+     TOKEN_MIPMIN = 366,
+     TOKEN_MIPMAX = 367,
+     TOKEN_BORDERCOLOR = 368,
+     TOKEN_U = 369,
+     TOKEN_V = 370,
+     TOKEN_W = 371
    };
    };
 #endif
 #endif
 
 
@@ -237,7 +238,7 @@ typedef union YYSTYPE
 
 
 
 
 /* Line 2579 of glr.c  */
 /* Line 2579 of glr.c  */
-#line 241 "BsParserFX.h"
+#line 242 "BsParserFX.h"
 } YYSTYPE;
 } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */

+ 3 - 0
Source/BansheeSL/Include/BsSLFXCompiler.h

@@ -103,6 +103,9 @@ namespace BansheeEngine
 		/**	Maps FX filter mode enum into in-engine filter mode. */
 		/**	Maps FX filter mode enum into in-engine filter mode. */
 		static UINT32 parseFilterMode(FilterValue filter);
 		static UINT32 parseFilterMode(FilterValue filter);
 
 
+		/**	Maps FX queue sort type enum into in-engine queue sort type mode. */
+		static QueueSortType parseSortType(QueueSortTypeValue sortType);
+
 		/**	Maps FX comparison function enum into in-engine compare function. */
 		/**	Maps FX comparison function enum into in-engine compare function. */
 		static CompareFunction parseCompFunc(CompFuncValue compFunc);
 		static CompareFunction parseCompFunc(CompFuncValue compFunc);
 
 

+ 1 - 1
Source/BansheeSL/Source/BsASTFX.c

@@ -9,7 +9,7 @@ OptionInfo OPTION_LOOKUP[] =
 	{ OT_None, ODT_Int },
 	{ OT_None, ODT_Int },
 	{ OT_Separable, ODT_Bool },
 	{ OT_Separable, ODT_Bool },
 	{ OT_Priority, ODT_Int },
 	{ OT_Priority, ODT_Int },
-	{ OT_Queue, ODT_Int },
+	{ OT_Sort, ODT_Int },
 	{ OT_Transparent, ODT_Bool },
 	{ OT_Transparent, ODT_Bool },
 	{ OT_Technique, ODT_Complex }, 
 	{ OT_Technique, ODT_Complex }, 
 	{ OT_Renderer, ODT_String }, 
 	{ OT_Renderer, ODT_String }, 

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 539 - 532
Source/BansheeSL/Source/BsLexerFX.c


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 443 - 440
Source/BansheeSL/Source/BsParserFX.c


+ 17 - 2
Source/BansheeSL/Source/BsSLFXCompiler.cpp

@@ -286,6 +286,21 @@ namespace BansheeEngine
 		return FO_NONE;
 		return FO_NONE;
 	}
 	}
 
 
+	QueueSortType BSLFXCompiler::parseSortType(QueueSortTypeValue sortType)
+	{
+		switch (sortType)
+		{
+		case QST_BackToFront:
+			return QueueSortType::BackToFront;
+		case QST_FrontToBack:
+			return QueueSortType::FrontToBack;
+		case QST_None:
+			return QueueSortType::None;
+		}
+
+		return QueueSortType::None;
+	}
+
 	CompareFunction BSLFXCompiler::parseCompFunc(CompFuncValue compFunc)
 	CompareFunction BSLFXCompiler::parseCompFunc(CompFuncValue compFunc)
 	{
 	{
 		switch (compFunc)
 		switch (compFunc)
@@ -1169,8 +1184,8 @@ namespace BansheeEngine
 			case OT_Separable:
 			case OT_Separable:
 				shaderDesc.separablePasses = option->value.intValue > 1;
 				shaderDesc.separablePasses = option->value.intValue > 1;
 				break;
 				break;
-			case OT_Queue:
-				shaderDesc.queuePriority = option->value.intValue;
+			case OT_Sort:
+				shaderDesc.queueSortType = parseSortType((QueueSortTypeValue)option->value.intValue);
 				break;
 				break;
 			case OT_Priority:
 			case OT_Priority:
 				shaderDesc.queuePriority = option->value.intValue;
 				shaderDesc.queuePriority = option->value.intValue;

Vissa filer visades inte eftersom för många filer har ändrats