forked from mikolalysenko/angle
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
git-svn-id: https://angleproject.googlecode.com/svn/trunk@2 736b8ea6-26fd-11df-bfd4-992fa37f6226
- Loading branch information
daniel@transgaming.com
committed
Mar 8, 2010
1 parent
eff1425
commit 4f39fd9
Showing
113 changed files
with
34,230 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
Debug | ||
Release | ||
ANGLE.ncb | ||
ANGLE.suo | ||
Compiler/Compiler.vcproj.* | ||
Compiler/Gen_glslang.cpp | ||
Compiler/Gen_glslang_tab.cpp | ||
Compiler/glslang.output | ||
Compiler/glslang_tab.h | ||
Compiler/Debug | ||
Compiler/Release | ||
libEGL/Debug | ||
libEGL/Release | ||
libEGL/libEGL.vcproj.* | ||
libGLESv2/Debug | ||
libGLESv2/Release | ||
libGLESv2/libGLESv2.vcproj.* | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
|
||
Microsoft Visual Studio Solution File, Format Version 10.00 | ||
# Visual C++ Express 2008 | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEGL", "libEGL\libEGL.vcproj", "{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}" | ||
ProjectSection(ProjectDependencies) = postProject | ||
{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78} | ||
EndProjectSection | ||
EndProject | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "libGLESv2\libGLESv2.vcproj", "{B5871A7A-968C-42E3-A33B-981E6F448E78}" | ||
ProjectSection(ProjectDependencies) = postProject | ||
{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD} = {5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD} | ||
EndProjectSection | ||
EndProject | ||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Compiler", "Compiler\Compiler.vcproj", "{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}" | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Win32 = Debug|Win32 | ||
Release|Win32 = Release|Win32 | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|Win32.ActiveCfg = Debug|Win32 | ||
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Debug|Win32.Build.0 = Debug|Win32 | ||
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|Win32.ActiveCfg = Release|Win32 | ||
{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}.Release|Win32.Build.0 = Release|Win32 | ||
{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|Win32.ActiveCfg = Debug|Win32 | ||
{B5871A7A-968C-42E3-A33B-981E6F448E78}.Debug|Win32.Build.0 = Debug|Win32 | ||
{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|Win32.ActiveCfg = Release|Win32 | ||
{B5871A7A-968C-42E3-A33B-981E6F448E78}.Release|Win32.Build.0 = Release|Win32 | ||
{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|Win32.ActiveCfg = Debug|Win32 | ||
{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Debug|Win32.Build.0 = Debug|Win32 | ||
{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|Win32.ActiveCfg = Release|Win32 | ||
{5B3A6DB8-1E7E-40D7-92B9-DA8AAE619FAD}.Release|Win32.Build.0 = Release|Win32 | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
EndGlobal |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# This is the official list of The ANGLE Project Authors | ||
# for copyright purposes. | ||
# This file is distinct from the CONTRIBUTORS files. | ||
# See the latter for an explanation. | ||
|
||
# Names should be added to this file as | ||
# Name or Organization <email address> | ||
# The email address is not required for organizations. | ||
|
||
TransGaming Inc. | ||
|
||
Google Inc. | ||
|
||
3DLabs Inc. Ltd. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# This is the official list of people who can contribute | ||
# (and who have contributed) code to the ANGLE project | ||
# repository. | ||
# The AUTHORS file lists the copyright holders; this file | ||
# lists people. For example, Google employees are listed here | ||
# but not in AUTHORS, because Google holds the copyright. | ||
# | ||
|
||
TransGaming Inc. | ||
Nicolas Capens | ||
Daniel Koch | ||
Andrew Lewycky | ||
Gavriel State | ||
Shannon Woods | ||
|
||
Google Inc. | ||
Henry Bridge | ||
Vangelis Kokkevis |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
// | ||
// 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. | ||
// | ||
|
||
// debug.cpp: Debugging utilities. | ||
|
||
#include "debug.h" | ||
|
||
#include <stdio.h> | ||
#include <stdarg.h> | ||
|
||
namespace gl | ||
{ | ||
void trace(const char *format, ...) | ||
{ | ||
if (true) | ||
{ | ||
if (format) | ||
{ | ||
FILE *file = fopen("debug.txt", "a"); | ||
|
||
if (file) | ||
{ | ||
va_list vararg; | ||
va_start(vararg, format); | ||
vfprintf(file, format, vararg); | ||
va_end(vararg); | ||
|
||
fclose(file); | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
// | ||
// 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 _BASICTYPES_INCLUDED_ | ||
#define _BASICTYPES_INCLUDED_ | ||
|
||
// | ||
// Precision qualifiers | ||
// | ||
enum TPrecision | ||
{ | ||
EbpHigh, | ||
EbpMedium, | ||
EbpLow, | ||
}; | ||
|
||
__inline const char* getPrecisionString(TPrecision p) | ||
{ | ||
switch(p) | ||
{ | ||
case EbpHigh: return "highp"; break; | ||
case EbpMedium: return "mediump"; break; | ||
case EbpLow: return "lowp"; break; | ||
default: return "unknown precision"; | ||
} | ||
} | ||
|
||
// | ||
// Basic type. Arrays, vectors, etc., are orthogonal to this. | ||
// | ||
enum TBasicType | ||
{ | ||
EbtVoid, | ||
EbtFloat, | ||
EbtInt, | ||
EbtBool, | ||
EbtGuardSamplerBegin, // non type: see implementation of IsSampler() | ||
EbtSampler2D, | ||
EbtSamplerCube, | ||
EbtGuardSamplerEnd, // non type: see implementation of IsSampler() | ||
EbtStruct, | ||
EbtAddress, // should be deprecated?? | ||
}; | ||
|
||
__inline bool IsSampler(TBasicType type) | ||
{ | ||
return type > EbtGuardSamplerBegin && type < EbtGuardSamplerEnd; | ||
} | ||
|
||
// | ||
// Qualifiers and built-ins. These are mainly used to see what can be read | ||
// or written, and by the machine dependent translator to know which registers | ||
// to allocate variables in. Since built-ins tend to go to different registers | ||
// than varying or uniform, it makes sense they are peers, not sub-classes. | ||
// | ||
enum TQualifier | ||
{ | ||
EvqTemporary, // For temporaries (within a function), read/write | ||
EvqGlobal, // For globals read/write | ||
EvqConst, // User defined constants and non-output parameters in functions | ||
EvqAttribute, // Readonly | ||
EvqVaryingIn, // readonly, fragment shaders only | ||
EvqVaryingOut, // vertex shaders only read/write | ||
EvqInvariantVaryingIn, // readonly, fragment shaders only | ||
EvqInvariantVaryingOut, // vertex shaders only read/write | ||
EvqUniform, // Readonly, vertex and fragment | ||
|
||
// pack/unpack input and output | ||
EvqInput, | ||
EvqOutput, | ||
|
||
// parameters | ||
EvqIn, | ||
EvqOut, | ||
EvqInOut, | ||
EvqConstReadOnly, | ||
|
||
// built-ins written by vertex shader | ||
EvqPosition, | ||
EvqPointSize, | ||
|
||
// built-ins read by fragment shader | ||
EvqFragCoord, | ||
EvqFrontFacing, | ||
EvqPointCoord, | ||
|
||
// built-ins written by fragment shader | ||
EvqFragColor, | ||
EvqFragData, | ||
|
||
// end of list | ||
EvqLast, | ||
}; | ||
|
||
// | ||
// This is just for debug print out, carried along with the definitions above. | ||
// | ||
__inline const char* getQualifierString(TQualifier q) | ||
{ | ||
switch(q) | ||
{ | ||
case EvqTemporary: return "Temporary"; break; | ||
case EvqGlobal: return "Global"; break; | ||
case EvqConst: return "const"; break; | ||
case EvqConstReadOnly: return "const"; break; | ||
case EvqAttribute: return "attribute"; break; | ||
case EvqVaryingIn: return "varying"; break; | ||
case EvqVaryingOut: return "varying"; break; | ||
case EvqInvariantVaryingIn: return "invariant varying"; break; | ||
case EvqInvariantVaryingOut:return "invariant varying"; break; | ||
case EvqUniform: return "uniform"; break; | ||
case EvqIn: return "in"; break; | ||
case EvqOut: return "out"; break; | ||
case EvqInOut: return "inout"; break; | ||
case EvqInput: return "input"; break; | ||
case EvqOutput: return "output"; break; | ||
case EvqPosition: return "Position"; break; | ||
case EvqPointSize: return "PointSize"; break; | ||
case EvqFragCoord: return "FragCoord"; break; | ||
case EvqFrontFacing: return "FrontFacing"; break; | ||
case EvqFragColor: return "FragColor"; break; | ||
case EvqFragData: return "FragData"; break; | ||
default: return "unknown qualifier"; | ||
} | ||
} | ||
|
||
#endif // _BASICTYPES_INCLUDED_ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
// | ||
// 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. | ||
// | ||
|
||
#include "Common.h" | ||
#include "ShHandle.h" | ||
|
||
// | ||
// Here is where real machine specific high-level data would be defined. | ||
// | ||
class TGenericCompiler : public TCompiler { | ||
public: | ||
TGenericCompiler(EShLanguage l, int dOptions) : TCompiler(l, infoSink), debugOptions(dOptions) { } | ||
virtual bool compile(TIntermNode* root); | ||
TInfoSink infoSink; | ||
int debugOptions; | ||
}; | ||
|
||
// | ||
// This function must be provided to create the actual | ||
// compile object used by higher level code. It returns | ||
// a subclass of TCompiler. | ||
// | ||
TCompiler* ConstructCompiler(EShLanguage language, int debugOptions) | ||
{ | ||
return new TGenericCompiler(language, debugOptions); | ||
} | ||
|
||
// | ||
// Delete the compiler made by ConstructCompiler | ||
// | ||
void DeleteCompiler(TCompiler* compiler) | ||
{ | ||
delete compiler; | ||
} | ||
|
||
// | ||
// Generate code from the given parse tree | ||
// | ||
bool TGenericCompiler::compile(TIntermNode *root) | ||
{ | ||
haveValidObjectCode = true; | ||
|
||
return haveValidObjectCode; | ||
} |
Oops, something went wrong.