Minor reshuffling of directory structure in preparation of ESSL to GLSL compiler work.
1. Added include/GLSLANG which includes compiler API
2. Deleted src/include and moved the header files to the same directory as the corresponding source files
3. Modied include path to be relative to src/. I have only fixed paths for files I moved. We should fix it for all new files at least. It is much easier to see where an included file is coming from.
I noticed that a few libGLESv2 source files include headers from libEGL project, which seems wrong. I think we should address this issue. Next step: move compiler source files to compiler/frontend and create two new projects compiler/glsl_backend and compiler/hlsl_backend.
Review URL: http://codereview.appspot.com/662042
git-svn-id: https://angleproject.googlecode.com/svn/trunk@62 736b8ea6-26fd-11df-bfd4-992fa37f6226
diff --git a/src/compiler/Initialize.h b/src/compiler/Initialize.h
index 99b0dfc..1878cf3 100644
--- a/src/compiler/Initialize.h
+++ b/src/compiler/Initialize.h
@@ -7,7 +7,7 @@
#ifndef _INITIALIZE_INCLUDED_
#define _INITIALIZE_INCLUDED_
-#include "ResourceLimits.h"
+#include "GLSLANG/ResourceLimits.h"
#include "Common.h"
#include "ShHandle.h"
#include "SymbolTable.h"
diff --git a/src/compiler/InitializeDll.cpp b/src/compiler/InitializeDll.cpp
index fd7c3ab..35a9829 100644
--- a/src/compiler/InitializeDll.cpp
+++ b/src/compiler/InitializeDll.cpp
@@ -8,7 +8,7 @@
#include "InitializeGlobals.h"
#include "InitializeParseContext.h"
-#include "ShaderLang.h"
+#include "GLSLANG/ShaderLang.h"
OS_TLSIndex ThreadInitializeIndex = OS_INVALID_TLS_INDEX;
diff --git a/src/compiler/OutputHLSL.cpp b/src/compiler/OutputHLSL.cpp
index f17f086..719802b 100644
--- a/src/compiler/OutputHLSL.cpp
+++ b/src/compiler/OutputHLSL.cpp
@@ -6,8 +6,8 @@
#include "OutputHLSL.h"
+#include "common/debug.h"
#include "InfoSink.h"
-#include "debug.h"
namespace sh
{
diff --git a/src/compiler/ResourceLimits.h b/src/compiler/ResourceLimits.h
deleted file mode 100644
index 7b7a4b7..0000000
--- a/src/compiler/ResourceLimits.h
+++ /dev/null
@@ -1,21 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-#ifndef _RESOURCE_LIMITS_INCLUDED_
-#define _RESOURCE_LIMITS_INCLUDED_
-
-struct TBuiltInResource
-{
- int maxVertexAttribs;
- int maxVertexUniformVectors;
- int maxVaryingVectors;
- int maxVertexTextureImageUnits;
- int maxCombinedTextureImageUnits;
- int maxTextureImageUnits;
- int maxFragmentUniformVectors;
- int maxDrawBuffers;
-};
-#endif // _RESOURCE_LIMITS_INCLUDED_
diff --git a/src/compiler/ShHandle.h b/src/compiler/ShHandle.h
index cd6353e..3e71e85 100644
--- a/src/compiler/ShHandle.h
+++ b/src/compiler/ShHandle.h
@@ -14,7 +14,7 @@
// This should not be included by driver code.
//
-#include "ShaderLang.h"
+#include "GLSLANG/ShaderLang.h"
#include "InfoSink.h"
diff --git a/src/compiler/ShaderLang.cpp b/src/compiler/ShaderLang.cpp
index 461604a..2e29d2c 100644
--- a/src/compiler/ShaderLang.cpp
+++ b/src/compiler/ShaderLang.cpp
@@ -8,16 +8,15 @@
// Implement the top-level of interface to the compiler/linker,
// as defined in ShaderLang.h
//
-#include "SymbolTable.h"
-#include "ParseHelper.h"
-#include "ShHandle.h"
-#include "InitializeDll.h"
+#include "GLSLANG/ShaderLang.h"
-#include "ShaderLang.h"
#include "Initialize.h"
-
+#include "InitializeDll.h"
#include "OutputHLSL.h"
+#include "ParseHelper.h"
+#include "ShHandle.h"
+#include "SymbolTable.h"
//
// A symbol table for each language. Each has a different
diff --git a/src/compiler/ShaderLang.h b/src/compiler/ShaderLang.h
deleted file mode 100644
index 6ddced5..0000000
--- a/src/compiler/ShaderLang.h
+++ /dev/null
@@ -1,175 +0,0 @@
-//
-// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-#ifndef _COMPILER_INTERFACE_INCLUDED_
-#define _COMPILER_INTERFACE_INCLUDED_
-
-#include "ResourceLimits.h"
-
-#ifdef _WIN32
-#define C_DECL __cdecl
-#else
-#define __fastcall
-#define C_DECL
-#endif
-
-//
-// This is the platform independent interface between an OGL driver
-// and the shading language compiler/linker.
-//
-
-#ifdef __cplusplus
- extern "C" {
-#endif
-//
-// Driver must call this first, once, before doing any other
-// compiler/linker operations.
-//
-int ShInitialize();
-//
-// Driver should call this at shutdown.
-//
-int __fastcall ShFinalize();
-//
-// Types of languages the compiler can consume.
-//
-typedef enum {
- EShLangVertex,
- EShLangFragment,
- EShLangCount,
-} EShLanguage;
-
-//
-// Types of output the linker will create.
-//
-typedef enum {
- EShExVertexFragment,
- EShExFragment
-} EShExecutable;
-
-//
-// Optimization level for the compiler.
-//
-typedef enum {
- EShOptNoGeneration,
- EShOptNone,
- EShOptSimple, // Optimizations that can be done quickly
- EShOptFull, // Optimizations that will take more time
-} EShOptimizationLevel;
-
-//
-// Build a table for bindings. This can be used for locating
-// attributes, uniforms, globals, etc., as needed.
-//
-typedef struct {
- const char* name;
- int binding;
-} ShBinding;
-
-typedef struct {
- int numBindings;
- ShBinding* bindings; // array of bindings
-} ShBindingTable;
-
-//
-// ShHandle held by but opaque to the driver. It is allocated,
-// managed, and de-allocated by the compiler/linker. It's contents
-// are defined by and used by the compiler and linker. For example,
-// symbol table information and object code passed from the compiler
-// to the linker can be stored where ShHandle points.
-//
-// If handle creation fails, 0 will be returned.
-//
-typedef void* ShHandle;
-
-//
-// Driver calls these to create and destroy compiler/linker
-// objects.
-//
-ShHandle ShConstructCompiler(const EShLanguage, int debugOptions); // one per shader
-ShHandle ShConstructLinker(const EShExecutable, int debugOptions); // one per shader pair
-ShHandle ShConstructUniformMap(); // one per uniform namespace (currently entire program object)
-void ShDestruct(ShHandle);
-
-//
-// The return value of ShCompile is boolean, indicating
-// success or failure.
-//
-// The info-log should be written by ShCompile into
-// ShHandle, so it can answer future queries.
-//
-int ShCompile(
- const ShHandle,
- const char* const shaderStrings[],
- const int numStrings,
- const EShOptimizationLevel,
- const TBuiltInResource *resources,
- int debugOptions
- );
-
-
-//
-// Similar to ShCompile, but accepts an opaque handle to an
-// intermediate language structure.
-//
-int ShCompileIntermediate(
- ShHandle compiler,
- ShHandle intermediate,
- const EShOptimizationLevel,
- int debuggable // boolean
- );
-
-int ShLink(
- const ShHandle, // linker object
- const ShHandle h[], // compiler objects to link together
- const int numHandles,
- ShHandle uniformMap, // updated with new uniforms
- short int** uniformsAccessed, // returned with indexes of uniforms accessed
- int* numUniformsAccessed);
-
-int ShLinkExt(
- const ShHandle, // linker object
- const ShHandle h[], // compiler objects to link together
- const int numHandles);
-
-//
-// ShSetEncrpytionMethod is a place-holder for specifying
-// how source code is encrypted.
-//
-void ShSetEncryptionMethod(ShHandle);
-
-//
-// All the following return 0 if the information is not
-// available in the object passed down, or the object is bad.
-//
-const char* ShGetInfoLog(const ShHandle);
-const char* ShGetObjectCode(const ShHandle);
-const void* ShGetExecutable(const ShHandle);
-int ShSetVirtualAttributeBindings(const ShHandle, const ShBindingTable*); // to detect user aliasing
-int ShSetFixedAttributeBindings(const ShHandle, const ShBindingTable*); // to force any physical mappings
-int ShGetPhysicalAttributeBindings(const ShHandle, const ShBindingTable**); // for all attributes
-//
-// Tell the linker to never assign a vertex attribute to this list of physical attributes
-//
-int ShExcludeAttributes(const ShHandle, int *attributes, int count);
-
-//
-// Returns the location ID of the named uniform.
-// Returns -1 if error.
-//
-int ShGetUniformLocation(const ShHandle uniformMap, const char* name);
-
-enum TDebugOptions {
- EDebugOpNone = 0x000,
- EDebugOpIntermediate = 0x001,
- EDebugOpAssembly = 0x002,
- EDebugOpObjectCode = 0x004,
- EDebugOpLinkMaps = 0x008
-};
-#ifdef __cplusplus
- }
-#endif
-
-#endif // _COMPILER_INTERFACE_INCLUDED_
diff --git a/src/compiler/compiler.vcproj b/src/compiler/compiler.vcproj
index 2c5024d..19b2150 100644
--- a/src/compiler/compiler.vcproj
+++ b/src/compiler/compiler.vcproj
@@ -41,7 +41,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
- AdditionalIncludeDirectories="./; ../include/"
+ AdditionalIncludeDirectories="./;../;../../include"
PreprocessorDefinitions="WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@@ -104,7 +104,7 @@
/>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="./; ../include/"
+ AdditionalIncludeDirectories="./;../;../../include/"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
@@ -386,11 +386,11 @@
>
</File>
<File
- RelativePath=".\ResourceLimits.h"
+ RelativePath="..\..\include\GLSLANG\ResourceLimits.h"
>
</File>
<File
- RelativePath=".\ShaderLang.h"
+ RelativePath="..\..\include\GLSLANG\ShaderLang.h"
>
</File>
<File
@@ -462,12 +462,6 @@
</File>
</Filter>
</Filter>
- <Filter
- Name="Resource Files"
- Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
- UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
- >
- </Filter>
</Files>
<Globals>
</Globals>
diff --git a/src/compiler/glslang.y b/src/compiler/glslang.y
index a163bea..84c0fb7 100644
--- a/src/compiler/glslang.y
+++ b/src/compiler/glslang.y
@@ -27,7 +27,7 @@
#include "SymbolTable.h"
#include "ParseHelper.h"
-#include "ShaderLang.h"
+#include "GLSLANG/ShaderLang.h"
#ifdef _WIN32
#define YYPARSE_PARAM parseContext
diff --git a/src/compiler/localintermediate.h b/src/compiler/localintermediate.h
index b9cd3f2..d234508 100644
--- a/src/compiler/localintermediate.h
+++ b/src/compiler/localintermediate.h
@@ -7,8 +7,8 @@
#ifndef _LOCAL_INTERMEDIATE_INCLUDED_
#define _LOCAL_INTERMEDIATE_INCLUDED_
+#include "GLSLANG/ShaderLang.h"
#include "intermediate.h"
-#include "ShaderLang.h"
#include "SymbolTable.h"
struct TVectorFields {