public void updateTextureMatrix(final Texture texture) { final Matrix4 texMat = Matrix4.fetchTempInstance(); updateTextureMatrix(texMat); texture.setTextureMatrix(texMat); Matrix4.releaseTempInstance(texMat); }
/** * Fill the buffer with the transforms and return it */ protected FloatBuffer fillTransformBuffer() { _primCount = Math.min(_visibleMeshes.size(), _maxBatchSize); final int nrOfFloats = _primCount * 16; /* 16 floats per matrix */ // re-init buffer when it is too small of more than twice the required size if (_transformBuffer == null || nrOfFloats > _transformBuffer.capacity()) { _transformBuffer = BufferUtils.createFloatBuffer(nrOfFloats); } _transformBuffer.rewind(); _transformBuffer.limit(nrOfFloats); final Matrix4 mat = Matrix4.fetchTempInstance(); for (int i = 0; i < _maxBatchSize && _meshesToDraw > 0; i++) { final Mesh mesh = _visibleMeshes.get(--_meshesToDraw); final Matrix4 transform = mesh.getWorldTransform().getHomogeneousMatrix(mat); transform.toFloatBuffer(_transformBuffer, false); } Matrix4.releaseTempInstance(mat); _transformBuffer.rewind(); return _transformBuffer; }
/** * Fill the buffer with the transforms and return it */ protected FloatBuffer fillTransformBuffer() { _primCount = Math.min(_visibleMeshes.size(), _maxBatchSize); final int nrOfFloats = _primCount * 16; /* 16 floats per matrix */ // re-init buffer when it is too small of more than twice the required size if (_transformBuffer == null || nrOfFloats > _transformBuffer.capacity()) { _transformBuffer = BufferUtils.createFloatBuffer(nrOfFloats); } _transformBuffer.rewind(); _transformBuffer.limit(nrOfFloats); final Matrix4 mat = Matrix4.fetchTempInstance(); for (int i = 0; i < _maxBatchSize && _meshesToDraw > 0; i++) { final Mesh mesh = _visibleMeshes.get(--_meshesToDraw); final Matrix4 transform = mesh.getWorldTransform().getHomogeneousMatrix(mat); transform.toFloatBuffer(_transformBuffer, false); } Matrix4.releaseTempInstance(mat); _transformBuffer.rewind(); return _transformBuffer; }
assertEquals(mat4, matTemp); assertNotSame(mat4, matTemp); Matrix4.releaseTempInstance(matTemp);