wonder.js
Version:
66 lines (60 loc) • 4.35 kB
JavaScript
'use strict';
var RenderJobUtils$Wonderjs = require("./RenderJobUtils.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var RenderBasicJobCommon$Wonderjs = require("../../common/render_basic/RenderBasicJobCommon.js");
var RenderObjectGlStateUtils$Wonderjs = require("./RenderObjectGlStateUtils.js");
var ShaderIndexRenderService$Wonderjs = require("../../../service/state/render/shader/ShaderIndexRenderService.js");
var DrawModeMeshRendererService$Wonderjs = require("../../../service/state/render/meshRenderer/DrawModeMeshRendererService.js");
var RenderBasicInstanceJobCommon$Wonderjs = require("../../common/render_basic/instance/RenderBasicInstanceJobCommon.js");
var OperateAllTextureRenderService$Wonderjs = require("../../../service/state/render/texture/allTexture/OperateAllTextureRenderService.js");
var RenderObjectBufferTypeArrayService$Wonderjs = require("../../../service/record/main/render/RenderObjectBufferTypeArrayService.js");
var ShaderIndexBasicMaterialRenderService$Wonderjs = require("../../../service/state/render/material/basic/ShaderIndexBasicMaterialRenderService.js");
var OperateTypeArrayAllBasicMaterialService$Wonderjs = require("../../../service/record/all/material/basic/OperateTypeArrayAllBasicMaterialService.js");
function _getShaderIndex(materialIndex, state) {
return ShaderIndexRenderService$Wonderjs.getShaderIndex(materialIndex, ShaderIndexBasicMaterialRenderService$Wonderjs.getShaderIndex, state);
}
function _setRenderObjectGlState(gl, materialIndex, state) {
RenderObjectGlStateUtils$Wonderjs.setRenderObjectGlState(gl, OperateTypeArrayAllBasicMaterialService$Wonderjs.getIsDepthTest(materialIndex, state[/* basicMaterialRecord */7][/* isDepthTests */2]), state[/* deviceManagerRecord */20]);
return state;
}
function render(gl, param, state) {
var sourceInstanceIndices = param[5];
var geometryIndices = param[4];
var meshRendererIndices = param[3];
var materialIndices = param[2];
var transformIndices = param[1];
return ArrayService$WonderCommonlib.reduceOneParam((function (state, index) {
var state$1 = OperateAllTextureRenderService$Wonderjs.resetActivedTextureUnitIndex(state);
var transformIndex = RenderObjectBufferTypeArrayService$Wonderjs.getComponent(index, transformIndices);
var materialIndex = RenderObjectBufferTypeArrayService$Wonderjs.getComponent(index, materialIndices);
var shaderIndex = ShaderIndexRenderService$Wonderjs.getShaderIndex(materialIndex, ShaderIndexBasicMaterialRenderService$Wonderjs.getShaderIndex, state$1);
var meshRendererIndex = RenderObjectBufferTypeArrayService$Wonderjs.getComponent(index, meshRendererIndices);
var geometryIndex = RenderObjectBufferTypeArrayService$Wonderjs.getComponent(index, geometryIndices);
var sourceInstance = RenderObjectBufferTypeArrayService$Wonderjs.getComponent(index, sourceInstanceIndices);
var state$2 = _setRenderObjectGlState(gl, materialIndex, state$1);
if (RenderObjectBufferTypeArrayService$Wonderjs.hasSourceInstance(sourceInstance)) {
return RenderBasicInstanceJobCommon$Wonderjs.render(gl, /* tuple */[
transformIndex,
materialIndex,
shaderIndex,
meshRendererIndex,
geometryIndex,
sourceInstance
], state$2);
} else {
var state$3 = RenderBasicJobCommon$Wonderjs.render(gl, /* tuple */[
transformIndex,
materialIndex,
shaderIndex,
meshRendererIndex,
geometryIndex
], state$2);
RenderJobUtils$Wonderjs.draw(gl, DrawModeMeshRendererService$Wonderjs.getGlDrawMode(gl, meshRendererIndex, state$3), geometryIndex, state$3);
return state$3;
}
}), state, param[0]);
}
exports._getShaderIndex = _getShaderIndex;
exports._setRenderObjectGlState = _setRenderObjectGlState;
exports.render = render;
/* RenderJobUtils-Wonderjs Not a pure module */