open source
This commit is contained in:
@@ -0,0 +1,453 @@
|
||||
var UNIFORM_TYPE;
|
||||
(function (UNIFORM_TYPE) {
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM1F"] = 0] = "INTERIOR_UNIFORM1F";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM1FV"] = 1] = "INTERIOR_UNIFORM1FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM1I"] = 2] = "INTERIOR_UNIFORM1I";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM1IV"] = 3] = "INTERIOR_UNIFORM1IV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM2F"] = 4] = "INTERIOR_UNIFORM2F";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM2FV"] = 5] = "INTERIOR_UNIFORM2FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM2I"] = 6] = "INTERIOR_UNIFORM2I";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM2IV"] = 7] = "INTERIOR_UNIFORM2IV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM3F"] = 8] = "INTERIOR_UNIFORM3F";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM3FV"] = 9] = "INTERIOR_UNIFORM3FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM3I"] = 10] = "INTERIOR_UNIFORM3I";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM3IV"] = 11] = "INTERIOR_UNIFORM3IV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM4F"] = 12] = "INTERIOR_UNIFORM4F";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM4FV"] = 13] = "INTERIOR_UNIFORM4FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM4I"] = 14] = "INTERIOR_UNIFORM4I";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORM4IV"] = 15] = "INTERIOR_UNIFORM4IV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORMMATRIX2FV"] = 16] = "INTERIOR_UNIFORMMATRIX2FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORMMATRIX3FV"] = 17] = "INTERIOR_UNIFORMMATRIX3FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORMMATRIX4FV"] = 18] = "INTERIOR_UNIFORMMATRIX4FV";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORMSAMPLER_2D"] = 19] = "INTERIOR_UNIFORMSAMPLER_2D";
|
||||
UNIFORM_TYPE[UNIFORM_TYPE["INTERIOR_UNIFORMSAMPLER_CUBE"] = 20] = "INTERIOR_UNIFORMSAMPLER_CUBE";
|
||||
})(UNIFORM_TYPE || (UNIFORM_TYPE = {}));
|
||||
var ARRAY_BUFFER_PARAM_TYPE;
|
||||
(function (ARRAY_BUFFER_PARAM_TYPE) {
|
||||
ARRAY_BUFFER_PARAM_TYPE[ARRAY_BUFFER_PARAM_TYPE["ARRAY_BUFFER_REF_REFERENCE"] = 0] = "ARRAY_BUFFER_REF_REFERENCE";
|
||||
ARRAY_BUFFER_PARAM_TYPE[ARRAY_BUFFER_PARAM_TYPE["ARRAY_BUFFER_REF_COPY"] = 1] = "ARRAY_BUFFER_REF_COPY";
|
||||
})(ARRAY_BUFFER_PARAM_TYPE || (ARRAY_BUFFER_PARAM_TYPE = {}));
|
||||
var UPLOAD_SHADER_UNIFORM_TYPE;
|
||||
(function (UPLOAD_SHADER_UNIFORM_TYPE) {
|
||||
UPLOAD_SHADER_UNIFORM_TYPE[UPLOAD_SHADER_UNIFORM_TYPE["UPLOAD_SHADER_UNIFORM_TYPE_ID"] = 0] = "UPLOAD_SHADER_UNIFORM_TYPE_ID";
|
||||
UPLOAD_SHADER_UNIFORM_TYPE[UPLOAD_SHADER_UNIFORM_TYPE["UPLOAD_SHADER_UNIFORM_TYPE_DATA"] = 1] = "UPLOAD_SHADER_UNIFORM_TYPE_DATA";
|
||||
})(UPLOAD_SHADER_UNIFORM_TYPE || (UPLOAD_SHADER_UNIFORM_TYPE = {}));
|
||||
var ARRAY_BUFFER_TYPE;
|
||||
(function (ARRAY_BUFFER_TYPE) {
|
||||
ARRAY_BUFFER_TYPE[ARRAY_BUFFER_TYPE["ARRAY_BUFFER_TYPE_DATA"] = 0] = "ARRAY_BUFFER_TYPE_DATA";
|
||||
ARRAY_BUFFER_TYPE[ARRAY_BUFFER_TYPE["ARRAY_BUFFER_TYPE_CMD"] = 1] = "ARRAY_BUFFER_TYPE_CMD";
|
||||
})(ARRAY_BUFFER_TYPE || (ARRAY_BUFFER_TYPE = {}));
|
||||
class conchFloatArrayKeyframe {
|
||||
constructor() {
|
||||
this._nativeObj = new _conchFloatArrayKeyframe();
|
||||
}
|
||||
set time(value) {
|
||||
this._nativeObj.setTime(value);
|
||||
}
|
||||
get time() {
|
||||
return this._nativeObj.getTime();
|
||||
}
|
||||
set data(value) {
|
||||
this._data = value;
|
||||
this._nativeObj.setData(value);
|
||||
}
|
||||
get data() {
|
||||
return this._data;
|
||||
}
|
||||
set inTangent(value) {
|
||||
this._inTangent = value;
|
||||
this._nativeObj.setInTangent(this._inTangent);
|
||||
}
|
||||
get inTangent() {
|
||||
return this._inTangent;
|
||||
}
|
||||
set outTangent(value) {
|
||||
this._outTangent = value;
|
||||
this._nativeObj.setOutTangent(this._outTangent);
|
||||
}
|
||||
get outTangent() {
|
||||
return this._outTangent;
|
||||
}
|
||||
set value(v) {
|
||||
this._value = v;
|
||||
this._nativeObj.setValue(this._value);
|
||||
}
|
||||
get value() {
|
||||
return this._value;
|
||||
}
|
||||
clone() {
|
||||
let pDestObj = new conchFloatArrayKeyframe();
|
||||
this.cloneTo(pDestObj);
|
||||
return pDestObj;
|
||||
}
|
||||
cloneTo(destObj) {
|
||||
destObj.inTangent = this._inTangent.slice();
|
||||
destObj.outTangent = this._outTangent.slice();
|
||||
destObj.value = this._value.slice();
|
||||
destObj.data = this._data.slice();
|
||||
}
|
||||
}
|
||||
window["conchFloatArrayKeyframe"] = conchFloatArrayKeyframe;
|
||||
class conchKeyframeNode {
|
||||
constructor() {
|
||||
this._keyFrameArray = [];
|
||||
this._type = 0;
|
||||
this._setKeyframeByIndex = function (index, keyframe) {
|
||||
this._keyFrameArray[index] = keyframe;
|
||||
if (keyframe instanceof (conchFloatArrayKeyframe)) {
|
||||
this._nativeObj._setKeyframeByIndex1(index, keyframe._nativeObj);
|
||||
}
|
||||
else {
|
||||
this._nativeObj._setKeyframeByIndex0(index, keyframe);
|
||||
}
|
||||
};
|
||||
this._nativeObj = new _conchKeyframeNode();
|
||||
}
|
||||
set data(value) {
|
||||
this._data = value;
|
||||
this._nativeObj.setFloat32ArrayData(this._data.elements);
|
||||
}
|
||||
get data() {
|
||||
return this._type == 0 ? this._nativeObj.getFloatData() : this._data;
|
||||
}
|
||||
get indexInList() {
|
||||
return this._nativeObj._indexInList;
|
||||
}
|
||||
set indexInList(value) {
|
||||
this._nativeObj._indexInList = value;
|
||||
}
|
||||
get type() {
|
||||
return this._type;
|
||||
}
|
||||
set type(type) {
|
||||
this._type = type;
|
||||
this._nativeObj.type = type;
|
||||
}
|
||||
get fullPath() {
|
||||
return this._nativeObj.fullPath;
|
||||
}
|
||||
set fullPath(path) {
|
||||
this._nativeObj.fullPath = path;
|
||||
}
|
||||
get propertyOwner() {
|
||||
return this._nativeObj.propertyOwner;
|
||||
}
|
||||
set propertyOwner(value) {
|
||||
this._nativeObj.propertyOwner = value;
|
||||
}
|
||||
get ownerPathCount() {
|
||||
return this._nativeObj.ownerPathCount;
|
||||
}
|
||||
set ownerPathCount(value) {
|
||||
this._nativeObj.ownerPathCount = value;
|
||||
}
|
||||
get propertyCount() {
|
||||
return this._nativeObj.propertyCount;
|
||||
}
|
||||
set propertyCount(value) {
|
||||
this._nativeObj.propertyCount = value;
|
||||
}
|
||||
get keyFramesCount() {
|
||||
return this._keyFrameArray.length;
|
||||
}
|
||||
set keyFramesCount(value) {
|
||||
this._keyFrameArray.length = value;
|
||||
this._nativeObj.keyFramesCount = value;
|
||||
}
|
||||
getOwnerPathCount() {
|
||||
return this._nativeObj.getOwnerPathCount();
|
||||
}
|
||||
_setOwnerPathCount(value) {
|
||||
this._nativeObj._setOwnerPathCount(value);
|
||||
}
|
||||
getPropertyCount() {
|
||||
return this._nativeObj.getPropertyCount();
|
||||
}
|
||||
_setPropertyCount(value) {
|
||||
this._nativeObj._setPropertyCount(value);
|
||||
}
|
||||
getKeyFramesCount() {
|
||||
return this._keyFrameArray.length;
|
||||
}
|
||||
_setKeyframeCount(value) {
|
||||
this._keyFrameArray.length = value;
|
||||
this._nativeObj._setKeyframeCount(value);
|
||||
}
|
||||
getOwnerPathByIndex(index) {
|
||||
return this._nativeObj.getOwnerPathByIndex(index);
|
||||
}
|
||||
_setOwnerPathByIndex(index, value) {
|
||||
this._nativeObj._setOwnerPathByIndex(index, value);
|
||||
}
|
||||
getPropertyByIndex(index) {
|
||||
return this._nativeObj.getPropertyByIndex(index);
|
||||
}
|
||||
_setPropertyByIndex(index, value) {
|
||||
this._nativeObj._setPropertyByIndex(index, value);
|
||||
}
|
||||
getKeyframeByIndex(index) {
|
||||
return this._nativeObj.getKeyframeByIndex(index);
|
||||
}
|
||||
_joinOwnerPath(sep) {
|
||||
return this._nativeObj._joinOwnerPath(sep);
|
||||
}
|
||||
_joinProperty(sep) {
|
||||
return this._nativeObj._joinProperty(sep);
|
||||
}
|
||||
}
|
||||
window["conchKeyframeNode"] = conchKeyframeNode;
|
||||
class conchKeyframeNodeList {
|
||||
constructor() {
|
||||
this._nodes = [];
|
||||
this._nativeObj = new _conchKeyframeNodeList();
|
||||
}
|
||||
set count(value) {
|
||||
this._nodes.length = value;
|
||||
this._nativeObj.setCount(value);
|
||||
}
|
||||
get count() {
|
||||
return this._nodes.length;
|
||||
}
|
||||
getNodeByIndex(index) {
|
||||
return this._nodes[index];
|
||||
}
|
||||
setNodeByIndex(index, node) {
|
||||
this._nodes[index] = node;
|
||||
this._nativeObj.setNodeByIndex(index, node._nativeObj);
|
||||
}
|
||||
}
|
||||
window["conchKeyframeNodeList"] = conchKeyframeNodeList;
|
||||
class _GLCommandEncoder {
|
||||
constructor(gl, reserveSize, adjustSize, isSyncToRenderThread) {
|
||||
this._adjustSize = 0;
|
||||
this._byteLen = 0;
|
||||
this._isSyncToRenderThread = false;
|
||||
this._isSyncToRenderThread = isSyncToRenderThread;
|
||||
this._layagl = gl;
|
||||
this._byteLen = reserveSize;
|
||||
this._adjustSize = adjustSize;
|
||||
this._init(isSyncToRenderThread);
|
||||
}
|
||||
_init(isSyncToRenderThread) {
|
||||
this._buffer = new ArrayBuffer(this._byteLen);
|
||||
this._idata = new Int32Array(this._buffer);
|
||||
this._fdata = new Float32Array(this._buffer);
|
||||
this._byteArray = new Uint8Array(this._buffer);
|
||||
this._layagl.createArrayBufferRef(this._buffer, ARRAY_BUFFER_TYPE.ARRAY_BUFFER_TYPE_CMD, isSyncToRenderThread);
|
||||
this._idata[0] = 1;
|
||||
}
|
||||
getAlignLength(data) {
|
||||
var byteLength = data.byteLength;
|
||||
return (byteLength + 3) & 0xfffffffc;
|
||||
}
|
||||
getPtrID() {
|
||||
return this._buffer["_ptrID"];
|
||||
}
|
||||
clearEncoding() {
|
||||
this._idata[0] = 1;
|
||||
}
|
||||
getCount() {
|
||||
return this._idata[0];
|
||||
}
|
||||
_need(sz) {
|
||||
if ((this._byteLen - (this._idata[0] << 2)) >= sz)
|
||||
return;
|
||||
this._byteLen += (sz > this._adjustSize) ? sz : this._adjustSize;
|
||||
var pre = this._idata;
|
||||
var preConchRef = this._buffer["conchRef"];
|
||||
var prePtrID = this._buffer["_ptrID"];
|
||||
this._buffer = new ArrayBuffer(this._byteLen);
|
||||
this._idata = new Int32Array(this._buffer);
|
||||
this._fdata = new Float32Array(this._buffer);
|
||||
this._byteArray = new Uint8Array(this._buffer);
|
||||
this._buffer["conchRef"] = preConchRef;
|
||||
this._buffer["_ptrID"] = prePtrID;
|
||||
pre && this._idata.set(pre, 0);
|
||||
webglPlus.updateArrayBufferRef(this._buffer["_ptrID"], preConchRef.isSyncToRender(), this._buffer);
|
||||
}
|
||||
addShaderUniform(one) {
|
||||
var funID = 0;
|
||||
var isArray = one.isArray;
|
||||
switch (one.type) {
|
||||
case _GLCommandEncoder.INT:
|
||||
funID = isArray ? UNIFORM_TYPE.INTERIOR_UNIFORM1IV : UNIFORM_TYPE.INTERIOR_UNIFORM1I;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT:
|
||||
funID = isArray ? UNIFORM_TYPE.INTERIOR_UNIFORM1FV : UNIFORM_TYPE.INTERIOR_UNIFORM1F;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_VEC2:
|
||||
funID = isArray ? UNIFORM_TYPE.INTERIOR_UNIFORM2FV : UNIFORM_TYPE.INTERIOR_UNIFORM2F;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_VEC3:
|
||||
funID = isArray ? UNIFORM_TYPE.INTERIOR_UNIFORM3FV : UNIFORM_TYPE.INTERIOR_UNIFORM3F;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_VEC4:
|
||||
funID = isArray ? UNIFORM_TYPE.INTERIOR_UNIFORM4FV : UNIFORM_TYPE.INTERIOR_UNIFORM4F;
|
||||
break;
|
||||
case _GLCommandEncoder.SAMPLER_2D:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORMSAMPLER_2D;
|
||||
break;
|
||||
case _GLCommandEncoder.SAMPLER_CUBE:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORMSAMPLER_CUBE;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_MAT4:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORMMATRIX4FV;
|
||||
break;
|
||||
case _GLCommandEncoder.BOOL:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORM1I;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_MAT2:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORMMATRIX2FV;
|
||||
break;
|
||||
case _GLCommandEncoder.FLOAT_MAT3:
|
||||
funID = UNIFORM_TYPE.INTERIOR_UNIFORMMATRIX3FV;
|
||||
break;
|
||||
default:
|
||||
throw new Error("compile shader err!");
|
||||
}
|
||||
this._layagl.syncBufferToRenderThread(this._buffer);
|
||||
this.add_iiiiii(3, funID, one.location.id, one.type, one.dataOffset, one.textureID);
|
||||
}
|
||||
add_iiiiii(a, b, c, d, e, f) {
|
||||
this._need(24);
|
||||
var idata = this._idata;
|
||||
var i = idata[0];
|
||||
idata[i++] = a;
|
||||
idata[i++] = b;
|
||||
idata[i++] = c;
|
||||
idata[i++] = d;
|
||||
idata[i++] = e;
|
||||
idata[i++] = f;
|
||||
idata[0] = i;
|
||||
}
|
||||
}
|
||||
_GLCommandEncoder.INT = 0x1404;
|
||||
_GLCommandEncoder.FLOAT = 0x1406;
|
||||
_GLCommandEncoder.FLOAT_VEC2 = 0x8B50;
|
||||
_GLCommandEncoder.FLOAT_VEC3 = 0x8B51;
|
||||
_GLCommandEncoder.FLOAT_VEC4 = 0x8B52;
|
||||
_GLCommandEncoder.INT_VEC2 = 0x8B53;
|
||||
_GLCommandEncoder.INT_VEC3 = 0x8B54;
|
||||
_GLCommandEncoder.INT_VEC4 = 0x8B55;
|
||||
_GLCommandEncoder.BOOL = 0x8B56;
|
||||
_GLCommandEncoder.BOOL_VEC2 = 0x8B57;
|
||||
_GLCommandEncoder.BOOL_VEC3 = 0x8B58;
|
||||
_GLCommandEncoder.BOOL_VEC4 = 0x8B59;
|
||||
_GLCommandEncoder.FLOAT_MAT2 = 0x8B5A;
|
||||
_GLCommandEncoder.FLOAT_MAT3 = 0x8B5B;
|
||||
_GLCommandEncoder.FLOAT_MAT4 = 0x8B5C;
|
||||
_GLCommandEncoder.SAMPLER_2D = 0x8B5E;
|
||||
_GLCommandEncoder.SAMPLER_CUBE = 0x8B60;
|
||||
function extendWebGLPlusToWebGLContext(gl) {
|
||||
gl.prototype.createArrayBufferRef = function (arrayBuffer, type, syncRender) {
|
||||
var bufferConchRef = webglPlus.createArrayBufferRef(arrayBuffer, type, syncRender, ARRAY_BUFFER_PARAM_TYPE.ARRAY_BUFFER_REF_REFERENCE);
|
||||
arrayBuffer["conchRef"] = bufferConchRef;
|
||||
arrayBuffer["_ptrID"] = bufferConchRef.id;
|
||||
return bufferConchRef;
|
||||
};
|
||||
gl.prototype.createArrayBufferRefs = function (arrayBuffer, type, syncRender, refType) {
|
||||
if (!arrayBuffer._refArray) {
|
||||
arrayBuffer._refArray = [];
|
||||
arrayBuffer._refNum = 1;
|
||||
arrayBuffer._refArray.length = 1;
|
||||
arrayBuffer.getRefNum = function () {
|
||||
return this._refNum;
|
||||
};
|
||||
arrayBuffer.clearRefNum = function () {
|
||||
this._refNum = 1;
|
||||
};
|
||||
arrayBuffer.getRefSize = function () {
|
||||
return this._refArray.length;
|
||||
};
|
||||
arrayBuffer.getPtrID = function (index) {
|
||||
index = index ? index : 0;
|
||||
return this._refArray[index].ptrID;
|
||||
};
|
||||
}
|
||||
var bufferConchRef = null;
|
||||
if (refType == ARRAY_BUFFER_PARAM_TYPE.ARRAY_BUFFER_REF_REFERENCE) {
|
||||
var refArray = arrayBuffer._refArray;
|
||||
if (!refArray[0]) {
|
||||
bufferConchRef = webglPlus.createArrayBufferRef(arrayBuffer, type, syncRender, refType);
|
||||
refArray[0] = { "ref": bufferConchRef, "ptrID": bufferConchRef.id };
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (arrayBuffer._refNum < arrayBuffer._refArray.length) {
|
||||
bufferConchRef = arrayBuffer._refArray[arrayBuffer._refNum].ref;
|
||||
var nPtrID = arrayBuffer.getPtrID(arrayBuffer._refNum);
|
||||
webglPlus.syncArrayBufferDataToRuntime(nPtrID, bufferConchRef.isSyncToRender(), arrayBuffer);
|
||||
}
|
||||
else {
|
||||
bufferConchRef = webglPlus.createArrayBufferRef(arrayBuffer, type, syncRender, refType);
|
||||
arrayBuffer._refArray.push({ "ref": bufferConchRef, "ptrID": bufferConchRef.id });
|
||||
}
|
||||
arrayBuffer._refNum++;
|
||||
}
|
||||
return bufferConchRef;
|
||||
};
|
||||
gl.prototype.updateArrayBufferRef = function (bufferID, isSyncToRender, buffer) {
|
||||
return webglPlus.updateArrayBufferRef(bufferID, isSyncToRender, buffer);
|
||||
};
|
||||
gl.prototype.updateAnimationNodeWorldMatix = function (locPosition, locRotation, locScaling, parentIndices, outWorldMatrix) {
|
||||
return webglPlus.updateAnimationNodeWorldMatix(locPosition, locRotation, locScaling, parentIndices, outWorldMatrix);
|
||||
};
|
||||
gl.prototype.computeSubSkinnedData = function (worldMatrixs, worldMatrixIndex, inverseBindPoses, boneIndices, bindPoseInices, resultData) {
|
||||
return webglPlus.computeSubSkinnedData(worldMatrixs, worldMatrixIndex, inverseBindPoses, boneIndices, bindPoseInices, resultData);
|
||||
};
|
||||
gl.prototype.evaluateClipDatasRealTime = function (nodes, playCurTime, realTimeCurrentFrameIndexs, addtive, frontPlay) {
|
||||
webglPlus.evaluateClipDatasRealTime(nodes, playCurTime, realTimeCurrentFrameIndexs, addtive, frontPlay);
|
||||
};
|
||||
gl.prototype.culling = function (boundFrustumBuffer, cullingBuffer, cullingBufferIndices, cullingCount, cullingBufferResult) {
|
||||
return webglPlus.culling(boundFrustumBuffer, cullingBuffer, cullingBufferIndices, cullingCount, cullingBufferResult);
|
||||
};
|
||||
if (!window["conch"]) {
|
||||
gl.prototype.createCommandEncoder = function (reserveSize, adjustSize, isSyncToRenderThread) {
|
||||
reserveSize = reserveSize ? reserveSize : 128;
|
||||
adjustSize = adjustSize ? adjustSize : 64;
|
||||
isSyncToRenderThread = isSyncToRenderThread ? isSyncToRenderThread : false;
|
||||
var cmd = new _GLCommandEncoder(this, reserveSize, adjustSize, isSyncToRenderThread);
|
||||
if (isSyncToRenderThread) {
|
||||
this.syncBufferToRenderThread(cmd);
|
||||
}
|
||||
return cmd;
|
||||
};
|
||||
window["GLCommandEncoder"] = _GLCommandEncoder;
|
||||
gl.prototype.syncBufferToRenderThread = function (value, index = 0) {
|
||||
};
|
||||
}
|
||||
if (!window["conch"]) {
|
||||
gl.prototype.uploadShaderUniforms = function (commandEncoder, data, type) {
|
||||
if (type == UPLOAD_SHADER_UNIFORM_TYPE.UPLOAD_SHADER_UNIFORM_TYPE_ID) {
|
||||
var dataID = data["_ptrID"];
|
||||
this.syncBufferToRenderThread(data);
|
||||
}
|
||||
else {
|
||||
var nAlignLength = this.getAlignLength(data);
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
gl.prototype.uniformMatrix2fvEx = function (location, transpose, value) {
|
||||
if (!value["_ptrID"]) {
|
||||
this.createArrayBufferRef(value, ARRAY_BUFFER_TYPE.ARRAY_BUFFER_TYPE_DATA, true);
|
||||
}
|
||||
var nID = value["_ptrID"];
|
||||
this.syncBufferToRenderThread(value);
|
||||
};
|
||||
gl.prototype.uniformMatrix3fvEx = function (location, transpose, value) {
|
||||
if (!value["_ptrID"]) {
|
||||
this.createArrayBufferRef(value, ARRAY_BUFFER_TYPE.ARRAY_BUFFER_TYPE_DATA, true);
|
||||
}
|
||||
var nID = value["_ptrID"];
|
||||
this.syncBufferToRenderThread(value);
|
||||
};
|
||||
gl.prototype.uniformMatrix4fvEx = function (location, transpose, value) {
|
||||
if (!value["_ptrID"]) {
|
||||
this.createArrayBufferRef(value, ARRAY_BUFFER_TYPE.ARRAY_BUFFER_TYPE_DATA, true);
|
||||
}
|
||||
var nID = value["_ptrID"];
|
||||
this.syncBufferToRenderThread(value);
|
||||
};
|
||||
}
|
||||
}
|
||||
window["extendWebGLPlusToWebGLContext"] = extendWebGLPlusToWebGLContext;
|
||||
Reference in New Issue
Block a user