GPUCounter.hx 594 B

123456789101112131415161718192021222324252627
  1. package h3d;
  2. class GPUCounter {
  3. public var buffer(default, null) : h3d.Buffer;
  4. var accessor : haxe.io.Bytes;
  5. public function new() {
  6. var alloc = hxd.impl.Allocator.get();
  7. buffer = alloc.allocBuffer(1,hxd.BufferFormat.INDEX32, UniformReadWrite);
  8. accessor = haxe.io.Bytes.alloc(4);
  9. }
  10. public function dispose(){
  11. var alloc = hxd.impl.Allocator.get();
  12. alloc.disposeBuffer(buffer);
  13. }
  14. public function get() : Int {
  15. buffer.readBytes(accessor, 0, 1);
  16. return accessor.getInt32(0);
  17. }
  18. public function reset(){
  19. accessor.setInt32(0, 0);
  20. buffer.uploadBytes(accessor, 0,1);
  21. }
  22. }