UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

2 lines (1 loc) 2.06 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var t=require("../core/Base.js"),e=require("../camera/Orthographic.js"),r=require("../geometry/Plane.js"),i=require("../Shader.js"),u=require("../Material.js"),a=require("../Mesh.js"),s=require("../core/glenum.js"),n=require("../shader/source/compositor/vertex.glsl.js");i.default.import(n.default);var o=new r.default,l=new a.default({geometry:o,frustumCulling:!1}),f=new e.default,h=t.default.extend((function(){return{fragment:"",outputs:null,material:null,blendWithPrevious:!1,clearColor:!1,clearDepth:!0}}),(function(){var t=new i.default(i.default.source("clay.compositor.vertex"),this.fragment),e=new u.default({shader:t});e.enableTexturesAll(),this.material=e}),{setUniform:function(t,e){this.material.setUniform(t,e)},getUniform:function(t){var e=this.material.uniforms[t];if(e)return e.value},attachOutput:function(t,e){this.outputs||(this.outputs={}),e=e||s.default.COLOR_ATTACHMENT0,this.outputs[e]=t},detachOutput:function(t){for(var e in this.outputs)this.outputs[e]===t&&(this.outputs[e]=null)},bind:function(t,e){if(this.outputs)for(var r in this.outputs){var i=this.outputs[r];i&&e.attach(i,r)}e&&e.bind(t)},unbind:function(t,e){e.unbind(t)},render:function(t,e){var r=t.gl;if(e){this.bind(t,e);var i=t.getGLExtension("EXT_draw_buffers");if(i&&this.outputs){var u=[];for(var a in this.outputs)(a=+a)>=r.COLOR_ATTACHMENT0&&a<=r.COLOR_ATTACHMENT0+8&&u.push(a);i.drawBuffersEXT(u)}}this.trigger("beforerender",this,t);var s=this.clearDepth?r.DEPTH_BUFFER_BIT:0;if(r.depthMask(!0),this.clearColor){s|=r.COLOR_BUFFER_BIT,r.colorMask(!0,!0,!0,!0);var n=this.clearColor;Array.isArray(n)&&r.clearColor(n[0],n[1],n[2],n[3])}r.clear(s),this.blendWithPrevious?(r.enable(r.BLEND),this.material.transparent=!0):(r.disable(r.BLEND),this.material.transparent=!1),this.renderQuad(t),this.trigger("afterrender",this,t),e&&this.unbind(t,e)},renderQuad:function(t){l.material=this.material,t.renderPass([l],f)},dispose:function(t){}});exports.default=h;