Merge Map and MapRenderer
This commit is contained in:
101
src/ol/webgl/uniform.js
Normal file
101
src/ol/webgl/uniform.js
Normal file
@@ -0,0 +1,101 @@
|
||||
goog.provide('ol.webgl.Uniform');
|
||||
|
||||
goog.require('goog.asserts');
|
||||
goog.require('goog.vec.Mat4');
|
||||
goog.require('ol.webgl.GLObject');
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @constructor
|
||||
* @extends {ol.webgl.GLObject}
|
||||
* @param {string} name Name.
|
||||
*/
|
||||
ol.webgl.Uniform = function(name) {
|
||||
|
||||
goog.base(this);
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {WebGLProgram}
|
||||
*/
|
||||
this.program_ = null;
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {string}
|
||||
*/
|
||||
this.name_ = name;
|
||||
|
||||
/**
|
||||
* @private
|
||||
* @type {WebGLUniformLocation}
|
||||
*/
|
||||
this.location_ = null;
|
||||
|
||||
};
|
||||
goog.inherits(ol.webgl.Uniform, ol.webgl.GLObject);
|
||||
|
||||
|
||||
/**
|
||||
* @return {string} Name.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.getName = function() {
|
||||
return this.name_;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {WebGLRenderingContext} gl GL.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.setGL = function(gl) {
|
||||
this.location_ = null;
|
||||
goog.base(this, 'setGL', gl);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} value Value.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.set1f = function(value) {
|
||||
var gl = this.getGL();
|
||||
if (!goog.isNull(this.location_)) {
|
||||
gl.uniform1f(this.location_, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {number} value Value.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.set1i = function(value) {
|
||||
var gl = this.getGL();
|
||||
if (!goog.isNull(this.location_)) {
|
||||
gl.uniform1i(this.location_, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {boolean} transpose Transpose.
|
||||
* @param {goog.vec.Mat4.Mat4Like} value Value.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.setMatrix4fv = function(transpose, value) {
|
||||
var gl = this.getGL();
|
||||
if (!goog.isNull(this.location_)) {
|
||||
gl.uniformMatrix4fv(this.location_, transpose, value);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* @param {WebGLProgram} program Program.
|
||||
*/
|
||||
ol.webgl.Uniform.prototype.setProgram = function(program) {
|
||||
if (goog.isNull(program)) {
|
||||
this.location_ = null;
|
||||
} else {
|
||||
var gl = this.getGL();
|
||||
this.location_ = gl.getUniformLocation(program, this.name_);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user