sdfsdfs
This commit is contained in:
80
node_modules/pixi.js/lib/rendering/renderers/shared/buffer/BufferResource.js
generated
vendored
Normal file
80
node_modules/pixi.js/lib/rendering/renderers/shared/buffer/BufferResource.js
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
'use strict';
|
||||
|
||||
var EventEmitter = require('eventemitter3');
|
||||
var uid = require('../../../../utils/data/uid.js');
|
||||
|
||||
"use strict";
|
||||
class BufferResource extends EventEmitter {
|
||||
/**
|
||||
* Create a new Buffer Resource.
|
||||
* @param options - The options for the buffer resource
|
||||
* @param options.buffer - The underlying buffer that this resource is using
|
||||
* @param options.offset - The offset of the buffer this resource is using.
|
||||
* If not provided, then it will use the offset of the buffer.
|
||||
* @param options.size - The size of the buffer this resource is using.
|
||||
* If not provided, then it will use the size of the buffer.
|
||||
*/
|
||||
constructor({ buffer, offset, size }) {
|
||||
super();
|
||||
/**
|
||||
* emits when the underlying buffer has changed shape (i.e. resized)
|
||||
* letting the renderer know that it needs to discard the old buffer on the GPU and create a new one
|
||||
* @event change
|
||||
*/
|
||||
/** a unique id for this uniform group used through the renderer */
|
||||
this.uid = uid.uid("buffer");
|
||||
/**
|
||||
* a resource type, used to identify how to handle it when its in a bind group / shader resource
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._resourceType = "bufferResource";
|
||||
/**
|
||||
* used internally to know if a uniform group was used in the last render pass
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._touched = 0;
|
||||
/**
|
||||
* the resource id used internally by the renderer to build bind group keys
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._resourceId = uid.uid("resource");
|
||||
/**
|
||||
* A cheeky hint to the GL renderer to let it know this is a BufferResource
|
||||
* @internal
|
||||
* @ignore
|
||||
*/
|
||||
this._bufferResource = true;
|
||||
/**
|
||||
* Has the Buffer resource been destroyed?
|
||||
* @readonly
|
||||
*/
|
||||
this.destroyed = false;
|
||||
this.buffer = buffer;
|
||||
this.offset = offset | 0;
|
||||
this.size = size;
|
||||
this.buffer.on("change", this.onBufferChange, this);
|
||||
}
|
||||
onBufferChange() {
|
||||
this._resourceId = uid.uid("resource");
|
||||
this.emit("change", this);
|
||||
}
|
||||
/**
|
||||
* Destroys this resource. Make sure the underlying buffer is not used anywhere else
|
||||
* if you want to destroy it as well, or code will explode
|
||||
* @param destroyBuffer - Should the underlying buffer be destroyed as well?
|
||||
*/
|
||||
destroy(destroyBuffer = false) {
|
||||
this.destroyed = true;
|
||||
if (destroyBuffer) {
|
||||
this.buffer.destroy();
|
||||
}
|
||||
this.emit("change", this);
|
||||
this.buffer = null;
|
||||
}
|
||||
}
|
||||
|
||||
exports.BufferResource = BufferResource;
|
||||
//# sourceMappingURL=BufferResource.js.map
|
Reference in New Issue
Block a user