mirror of
https://github.com/KhronosGroup/glslang
synced 2024-09-20 04:40:01 +00:00
Add and use ability to tell the backend compiler what version/profile the source shader was.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@20840 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
d7c120f16f
commit
213c464c60
@ -34,6 +34,7 @@
|
|||||||
|
|
||||||
#include "../Include/Common.h"
|
#include "../Include/Common.h"
|
||||||
#include "../Include/ShHandle.h"
|
#include "../Include/ShHandle.h"
|
||||||
|
#include "../MachineIndependent/Versions.h"
|
||||||
|
|
||||||
//
|
//
|
||||||
// Here is where real machine specific high-level data would be defined.
|
// Here is where real machine specific high-level data would be defined.
|
||||||
@ -41,7 +42,7 @@
|
|||||||
class TGenericCompiler : public TCompiler {
|
class TGenericCompiler : public TCompiler {
|
||||||
public:
|
public:
|
||||||
TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { }
|
TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { }
|
||||||
virtual bool compile(TIntermNode* root);
|
virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile);
|
||||||
TInfoSink infoSink;
|
TInfoSink infoSink;
|
||||||
int debugOptions;
|
int debugOptions;
|
||||||
};
|
};
|
||||||
@ -67,7 +68,7 @@ void DeleteCompiler(TCompiler* compiler)
|
|||||||
//
|
//
|
||||||
// Generate code from the given parse tree
|
// Generate code from the given parse tree
|
||||||
//
|
//
|
||||||
bool TGenericCompiler::compile(TIntermNode *root)
|
bool TGenericCompiler::compile(TIntermNode *root, int version, EProfile profile)
|
||||||
{
|
{
|
||||||
haveValidObjectCode = true;
|
haveValidObjectCode = true;
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
#define SH_EXPORTING
|
#define SH_EXPORTING
|
||||||
#include "../Public/ShaderLang.h"
|
#include "../Public/ShaderLang.h"
|
||||||
|
#include "../MachineIndependent/Versions.h"
|
||||||
#include "InfoSink.h"
|
#include "InfoSink.h"
|
||||||
|
|
||||||
class TCompiler;
|
class TCompiler;
|
||||||
@ -91,7 +91,7 @@ public:
|
|||||||
EShLanguage getLanguage() { return language; }
|
EShLanguage getLanguage() { return language; }
|
||||||
virtual TInfoSink& getInfoSink() { return infoSink; }
|
virtual TInfoSink& getInfoSink() { return infoSink; }
|
||||||
|
|
||||||
virtual bool compile(TIntermNode* root) = 0;
|
virtual bool compile(TIntermNode* root, int version = 0, EProfile profile = ENoProfile) = 0;
|
||||||
|
|
||||||
virtual TCompiler* getAsCompiler() { return this; }
|
virtual TCompiler* getAsCompiler() { return this; }
|
||||||
virtual bool linkable() { return haveValidObjectCode; }
|
virtual bool linkable() { return haveValidObjectCode; }
|
||||||
|
@ -566,7 +566,7 @@ int ShCompile(
|
|||||||
//
|
//
|
||||||
// Call the machine dependent compiler
|
// Call the machine dependent compiler
|
||||||
//
|
//
|
||||||
if (! compiler->compile(parseContext.treeRoot))
|
if (! compiler->compile(parseContext.treeRoot, parseContext.version, parseContext.profile))
|
||||||
success = false;
|
success = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user