/*------------------------------------------------------------------------- * drawElements Quality Program OpenGL ES Utilities * ------------------------------------------------ * * Copyright 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ 'use strict'; goog.provide('framework.referencerenderer.rrShaders'); goog.require('framework.common.tcuTexture'); goog.require('framework.delibs.debase.deMath'); goog.require('framework.referencerenderer.rrGenericVector'); goog.require('framework.referencerenderer.rrShadingContext'); goog.require('framework.referencerenderer.rrVertexAttrib'); goog.require('framework.referencerenderer.rrVertexPacket'); goog.scope(function() { var rrShaders = framework.referencerenderer.rrShaders; var tcuTexture = framework.common.tcuTexture; var deMath = framework.delibs.debase.deMath; var rrGenericVector = framework.referencerenderer.rrGenericVector; var rrShadingContext = framework.referencerenderer.rrShadingContext; var rrVertexAttrib = framework.referencerenderer.rrVertexAttrib; var rrVertexPacket = framework.referencerenderer.rrVertexPacket; /** * Vertex shader input information * @constructor */ rrShaders.VertexInputInfo = function() { /** @type {rrGenericVector.GenericVecType} */ this.type; }; /** * Shader varying information * @constructor */ rrShaders.VertexVaryingInfo = function() { /** @type {rrGenericVector.GenericVecType} */ this.type; /** @type {boolean} */ var flatshade = false; }; /** * Fragment shader output information * @constructor */ rrShaders.FragmentOutputInfo = function() { //Sensible defaults /** @type {rrGenericVector.GenericVecType} */ this.type; }; /** * Vertex shader interface * * Vertex shaders execute shading for set of vertex packets. See VertexPacket * documentation for more details on shading API. * @constructor * @param {number} numInputs * @param {number} numOutputs */ rrShaders.VertexShader = function(numInputs, numOutputs) { /** @type {Array} */ this.m_inputs = []; for (var ndx = 0; ndx < numInputs; ndx++) this.m_inputs[ndx] = new rrShaders.VertexInputInfo(); /** @type {Array} */ this.m_outputs = []; for (var ndx = 0; ndx < numOutputs; ndx++) this.m_outputs[ndx] = new rrShaders.VertexVaryingInfo(); }; /** * getInputs * @return {Array} */ rrShaders.VertexShader.prototype.getInputs = function() {return this.m_inputs;}; /** * getOutputs * @return {Array} */ rrShaders.VertexShader.prototype.getOutputs = function() {return this.m_outputs;}; /** * Fragment shader interface * * Fragment shader executes shading for list of fragment packets. See * FragmentPacket documentation for more details on shading API. * @constructor * @param {number} numInputs * @param {number} numOutputs */ rrShaders.FragmentShader = function(numInputs, numOutputs) { /** @type {Array} */ this.m_inputs = []; for (var ndx = 0; ndx < numInputs; ndx++) this.m_inputs[ndx] = new rrShaders.VertexVaryingInfo(); /** @type {Array} */ this.m_outputs = []; for (var ndx = 0; ndx < numOutputs; ndx++) this.m_outputs[ndx] = new rrShaders.FragmentOutputInfo(); /** @type {*} */ this.m_container; // owner object }; /** * getInputs * @return {Array} */ rrShaders.FragmentShader.prototype.getInputs = function() {return this.m_inputs;}; /** * getOutputs * @return {Array} */ rrShaders.FragmentShader.prototype.getOutputs = function() {return this.m_outputs;}; });