|
@@ -139,6 +139,7 @@ export class Effect implements IDisposable {
|
|
|
private static _uniqueIdSeed = 0;
|
|
|
private _engine: Engine;
|
|
|
private _uniformBuffersNames: { [key: string]: number } = {};
|
|
|
+ private _uniformBuffersNamesList: string[];
|
|
|
private _uniformsNames: string[];
|
|
|
private _samplerList: string[];
|
|
|
private _samplers: { [key: string]: number } = {};
|
|
@@ -203,6 +204,7 @@ export class Effect implements IDisposable {
|
|
|
this._transformFeedbackVaryings = options.transformFeedbackVaryings || null;
|
|
|
|
|
|
if (options.uniformBuffersNames) {
|
|
|
+ this._uniformBuffersNamesList = options.uniformBuffersNames.slice();
|
|
|
for (var i = 0; i < options.uniformBuffersNames.length; i++) {
|
|
|
this._uniformBuffersNames[options.uniformBuffersNames[i]] = i;
|
|
|
}
|
|
@@ -213,6 +215,7 @@ export class Effect implements IDisposable {
|
|
|
this._uniformsNames = (<string[]>uniformsNamesOrEngine).concat(<string[]>samplers);
|
|
|
this._samplerList = samplers ? <string[]>samplers.slice() : [];
|
|
|
this._attributesNames = (<string[]>attributesNamesOrOptions);
|
|
|
+ this._uniformBuffersNamesList = [];
|
|
|
|
|
|
this.onError = onError;
|
|
|
this.onCompiled = onCompiled;
|
|
@@ -393,13 +396,37 @@ export class Effect implements IDisposable {
|
|
|
|
|
|
/**
|
|
|
* Returns an array of sampler variable names
|
|
|
- * @returns The array of sampler variable neames.
|
|
|
+ * @returns The array of sampler variable names.
|
|
|
*/
|
|
|
public getSamplers(): string[] {
|
|
|
return this._samplerList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Returns an array of uniform variable names
|
|
|
+ * @returns The array of uniform variable names.
|
|
|
+ */
|
|
|
+ public getUniformNames(): string[] {
|
|
|
+ return this._uniformsNames;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Returns an array of uniform buffer variable names
|
|
|
+ * @returns The array of uniform buffer variable names.
|
|
|
+ */
|
|
|
+ public getUniformBuffersNames(): string[] {
|
|
|
+ return this._uniformBuffersNamesList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Returns the index parameters used to create the effect
|
|
|
+ * @returns The index parameters object
|
|
|
+ */
|
|
|
+ public getIndexParameters(): any {
|
|
|
+ return this._indexParameters;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* The error from the last compilation.
|
|
|
* @returns the error string.
|
|
|
*/
|
|
@@ -498,6 +525,20 @@ export class Effect implements IDisposable {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * Gets the vertex shader source code of this effect
|
|
|
+ */
|
|
|
+ public get vertexSourceCode(): string {
|
|
|
+ return this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride ? this._vertexSourceCodeOverride : this._vertexSourceCode;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Gets the fragment shader source code of this effect
|
|
|
+ */
|
|
|
+ public get fragmentSourceCode(): string {
|
|
|
+ return this._vertexSourceCodeOverride && this._fragmentSourceCodeOverride ? this._fragmentSourceCodeOverride : this._fragmentSourceCode;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* Recompiles the webGL program
|
|
|
* @param vertexSourceCode The source code for the vertex shader.
|
|
|
* @param fragmentSourceCode The source code for the fragment shader.
|