You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/canvas/src-native/canvas-android/canvas/src/main/java/com/github/triniwiz/canvas/TNSWebGL2RenderingContext.kt
+64-17Lines changed: 64 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -231,10 +231,12 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
231
231
) {
232
232
val lock =CountDownLatch(1)
233
233
runOnGLThread(Runnable {
234
-
val buffer =ByteBuffer.wrap(srcData)
235
234
var size = srcData.size
236
-
val offset = srcOffset *SIZE_OF_BYTE
237
-
val overrideLength = srcLengthOverride *SIZE_OF_BYTE
235
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
236
+
buffer.put(srcData)
237
+
buffer.rewind()
238
+
val offset = srcOffset
239
+
val overrideLength = srcLengthOverride
238
240
if (srcLengthOverride ==0) {
239
241
size = size - offset
240
242
} elseif (overrideLength > size - offset) {
@@ -1204,7 +1206,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1204
1206
val lock =CountDownLatch(1)
1205
1207
runOnGLThread(Runnable {
1206
1208
source?.let {
1207
-
val buffer =ByteBuffer.wrap(it)
1209
+
val size = it.size
1210
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1211
+
buffer.put(it)
1212
+
buffer.rewind()
1208
1213
nativeTexImage3DBuffer(
1209
1214
target,
1210
1215
level,
@@ -1256,7 +1261,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1256
1261
val lock =CountDownLatch(1)
1257
1262
runOnGLThread(Runnable {
1258
1263
source?.let {
1259
-
val buffer =ShortBuffer.wrap(it)
1264
+
val size = it.size *SIZE_OF_SHORT
1265
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1266
+
buffer.asShortBuffer().put(it)
1267
+
buffer.rewind()
1260
1268
nativeTexImage3DBuffer(
1261
1269
target,
1262
1270
level,
@@ -1308,7 +1316,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1308
1316
val lock =CountDownLatch(1)
1309
1317
runOnGLThread(Runnable {
1310
1318
source?.let {
1311
-
val buffer =IntBuffer.wrap(it)
1319
+
val size = it.size *SIZE_OF_INT
1320
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1321
+
buffer.asIntBuffer().put(it)
1322
+
buffer.rewind()
1312
1323
nativeTexImage3DBuffer(
1313
1324
target,
1314
1325
level,
@@ -1360,7 +1371,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1360
1371
val lock =CountDownLatch(1)
1361
1372
runOnGLThread(Runnable {
1362
1373
source?.let {
1363
-
val buffer =LongBuffer.wrap(it)
1374
+
val size = it.size *SIZE_OF_LONG
1375
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1376
+
buffer.asLongBuffer().put(it)
1377
+
buffer.rewind()
1364
1378
nativeTexImage3DBuffer(
1365
1379
target,
1366
1380
level,
@@ -1412,7 +1426,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1412
1426
val lock =CountDownLatch(1)
1413
1427
runOnGLThread(Runnable {
1414
1428
source?.let {
1415
-
val buffer =FloatBuffer.wrap(it)
1429
+
val size = it.size *SIZE_OF_FLOAT
1430
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1431
+
buffer.asFloatBuffer().put(it)
1432
+
buffer.rewind()
1416
1433
nativeTexImage3DBuffer(
1417
1434
target,
1418
1435
level,
@@ -1463,7 +1480,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1463
1480
val lock =CountDownLatch(1)
1464
1481
runOnGLThread(Runnable {
1465
1482
source?.let {
1466
-
val buffer =DoubleBuffer.wrap(it)
1483
+
val size = it.size *SIZE_OF_DOUBLE
1484
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1485
+
buffer.asDoubleBuffer().put(it)
1486
+
buffer.rewind()
1467
1487
nativeTexImage3DBuffer(
1468
1488
target,
1469
1489
level,
@@ -1549,6 +1569,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1549
1569
val ss = source.snapshot()
1550
1570
val lock =CountDownLatch(1)
1551
1571
runOnGLThread(Runnable {
1572
+
val size = ss.size
1573
+
val buf =ByteBuffer.allocateDirect(size)
1574
+
buf.put(ss)
1575
+
buf.rewind()
1552
1576
nativeTexImage3DBuffer(
1553
1577
target,
1554
1578
level,
@@ -1559,7 +1583,7 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1559
1583
border,
1560
1584
format,
1561
1585
type,
1562
-
ByteBuffer.wrap(ss),
1586
+
buf,
1563
1587
flipYWebGL
1564
1588
)
1565
1589
lock.countDown()
@@ -1725,6 +1749,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1725
1749
val ss = srcData.snapshot()
1726
1750
val lock =CountDownLatch(1)
1727
1751
runOnGLThread(Runnable {
1752
+
val size = ss.size
1753
+
val buf =ByteBuffer.allocateDirect(size)
1754
+
buf.put(ss)
1755
+
buf.rewind()
1728
1756
nativeTexSubImage3DBuffer(
1729
1757
target,
1730
1758
level,
@@ -1736,7 +1764,7 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1736
1764
depth,
1737
1765
format,
1738
1766
type,
1739
-
ByteBuffer.wrap(ss),
1767
+
buf,
1740
1768
flipYWebGL
1741
1769
)
1742
1770
lock.countDown()
@@ -1803,7 +1831,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1803
1831
val lock =CountDownLatch(1)
1804
1832
runOnGLThread(Runnable {
1805
1833
srcData?.let {
1806
-
val buffer =ByteBuffer.wrap(it)
1834
+
val size = it.size
1835
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1836
+
buffer.put(it)
1837
+
buffer.rewind()
1807
1838
buffer.position(srcOffset)
1808
1839
nativeTexSubImage3DBuffer(
1809
1840
target,
@@ -1860,7 +1891,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1860
1891
val lock =CountDownLatch(1)
1861
1892
runOnGLThread(Runnable {
1862
1893
srcData?.let {
1863
-
val buffer =ShortBuffer.wrap(it)
1894
+
val size = it.size *SIZE_OF_SHORT
1895
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1896
+
buffer.asShortBuffer().put(it)
1897
+
buffer.rewind()
1864
1898
buffer.position(srcOffset)
1865
1899
nativeTexSubImage3DBuffer(
1866
1900
target,
@@ -1916,7 +1950,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1916
1950
val lock =CountDownLatch(1)
1917
1951
runOnGLThread(Runnable {
1918
1952
srcData?.let {
1919
-
val buffer =IntBuffer.wrap(it)
1953
+
val size = it.size *SIZE_OF_INT
1954
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
1955
+
buffer.asIntBuffer().put(it)
1956
+
buffer.rewind()
1920
1957
buffer.position(srcOffset)
1921
1958
nativeTexSubImage3DBuffer(
1922
1959
target,
@@ -1973,7 +2010,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
1973
2010
val lock =CountDownLatch(1)
1974
2011
runOnGLThread(Runnable {
1975
2012
srcData?.let {
1976
-
val buffer =LongBuffer.wrap(it)
2013
+
val size = it.size *SIZE_OF_LONG
2014
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
2015
+
buffer.asLongBuffer().put(it)
2016
+
buffer.rewind()
1977
2017
buffer.position(srcOffset)
1978
2018
nativeTexSubImage3DBuffer(
1979
2019
target,
@@ -2030,7 +2070,10 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
2030
2070
val lock =CountDownLatch(1)
2031
2071
runOnGLThread(Runnable {
2032
2072
srcData?.let {
2033
-
val buffer =FloatBuffer.wrap(it)
2073
+
val size = it.size *SIZE_OF_FLOAT
2074
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
2075
+
buffer.asFloatBuffer().put(it)
2076
+
buffer.rewind()
2034
2077
buffer.position(srcOffset)
2035
2078
nativeTexSubImage3DBuffer(
2036
2079
target,
@@ -2086,7 +2129,11 @@ class TNSWebGL2RenderingContext : TNSWebGLRenderingContext {
2086
2129
val lock =CountDownLatch(1)
2087
2130
runOnGLThread(Runnable {
2088
2131
srcData?.let {
2089
-
val buffer =DoubleBuffer.wrap(it)
2132
+
val size = it.size *SIZE_OF_DOUBLE
2133
+
val buffer =ByteBuffer.allocateDirect(size).order(ByteOrder.nativeOrder())
0 commit comments