Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.02 KB | None | 0 0
  1. //
  2. // Decompiled by Procyon v0.5.36
  3. //
  4.  
  5. package com.mojang.blaze3d.systems;
  6.  
  7. import com.google.common.collect.Queues;
  8. import org.apache.logging.log4j.LogManager;
  9. import org.lwjgl.glfw.GLFW;
  10. import org.lwjgl.glfw.GLFWErrorCallbackI;
  11. import java.util.function.LongSupplier;
  12. import com.mojang.blaze3d.platform.GLX;
  13. import java.nio.ByteBuffer;
  14. import java.util.function.Consumer;
  15. import javax.annotation.Nullable;
  16. import java.nio.IntBuffer;
  17. import java.nio.FloatBuffer;
  18. import java.util.function.Supplier;
  19. import java.util.concurrent.ConcurrentLinkedQueue;
  20. import org.apache.logging.log4j.Logger;
  21.  
  22. public class RenderSystem
  23. {
  24. private static final Logger LOGGER;
  25. private static final ConcurrentLinkedQueue<cvy> recordingQueue;
  26. private static final cxh RENDER_THREAD_TESSELATOR;
  27. private static final float DEFAULTALPHACUTOFF = 0.1f;
  28. private static boolean isReplayingQueue;
  29. private static Thread gameThread;
  30. private static Thread renderThread;
  31. private static int MAX_SUPPORTED_TEXTURE_SIZE;
  32. private static boolean isInInit;
  33.  
  34. public static void initRenderThread() {
  35. if (RenderSystem.renderThread != null || RenderSystem.gameThread == Thread.currentThread()) {
  36. throw new IllegalStateException("Could not initialize render thread");
  37. }
  38. RenderSystem.renderThread = Thread.currentThread();
  39. }
  40.  
  41. public static boolean isOnRenderThread() {
  42. return Thread.currentThread() == RenderSystem.renderThread;
  43. }
  44.  
  45. public static boolean isOnRenderThreadOrInit() {
  46. return RenderSystem.isInInit || isOnRenderThread();
  47. }
  48.  
  49. public static void initGameThread(final boolean \u2603) {
  50. final boolean b = RenderSystem.renderThread == Thread.currentThread();
  51. if (RenderSystem.gameThread != null || RenderSystem.renderThread == null || b == \u2603) {
  52. throw new IllegalStateException("Could not initialize tick thread");
  53. }
  54. RenderSystem.gameThread = Thread.currentThread();
  55. }
  56.  
  57. public static boolean isOnGameThread() {
  58. return true;
  59. }
  60.  
  61. public static boolean isOnGameThreadOrInit() {
  62. return RenderSystem.isInInit || isOnGameThread();
  63. }
  64.  
  65. public static void assertThread(final Supplier<Boolean> \u2603) {
  66. if (!\u2603.get()) {
  67. throw new IllegalStateException("Rendersystem called from wrong thread");
  68. }
  69. }
  70.  
  71. public static boolean isInInitPhase() {
  72. return true;
  73. }
  74.  
  75. public static void pushLightingAttributes() {
  76. assertThread(RenderSystem::isOnGameThread);
  77. cwi.b();
  78. }
  79.  
  80. public static void pushTextureAttributes() {
  81. assertThread(RenderSystem::isOnGameThread);
  82. cwi.c();
  83. }
  84.  
  85. public static void popAttributes() {
  86. assertThread(RenderSystem::isOnGameThread);
  87. cwi.d();
  88. }
  89.  
  90. public static void disableAlphaTest() {
  91. assertThread(RenderSystem::isOnGameThread);
  92. cwi.e();
  93. }
  94.  
  95. public static void enableAlphaTest() {
  96. assertThread(RenderSystem::isOnGameThread);
  97. cwi.f();
  98. }
  99.  
  100. public static void alphaFunc(final int \u2603, final float \u2603) {
  101. assertThread(RenderSystem::isOnGameThread);
  102. cwi.a(\u2603, \u2603);
  103. }
  104.  
  105. public static void enableLighting() {
  106. assertThread(RenderSystem::isOnGameThread);
  107. cwi.g();
  108. }
  109.  
  110. public static void disableLighting() {
  111. assertThread(RenderSystem::isOnGameThread);
  112. cwi.h();
  113. }
  114.  
  115. public static void enableColorMaterial() {
  116. assertThread(RenderSystem::isOnGameThread);
  117. cwi.i();
  118. }
  119.  
  120. public static void disableColorMaterial() {
  121. assertThread(RenderSystem::isOnGameThread);
  122. cwi.j();
  123. }
  124.  
  125. public static void colorMaterial(final int \u2603, final int \u2603) {
  126. assertThread(RenderSystem::isOnGameThread);
  127. cwi.a(\u2603, \u2603);
  128. }
  129.  
  130. public static void normal3f(final float \u2603, final float \u2603, final float \u2603) {
  131. assertThread(RenderSystem::isOnGameThread);
  132. cwi.a(\u2603, \u2603, \u2603);
  133. }
  134.  
  135. public static void disableDepthTest() {
  136. assertThread(RenderSystem::isOnGameThread);
  137. cwi.k();
  138. }
  139.  
  140. public static void enableDepthTest() {
  141. assertThread(RenderSystem::isOnGameThreadOrInit);
  142. cwi.l();
  143. }
  144.  
  145. public static void depthFunc(final int \u2603) {
  146. assertThread(RenderSystem::isOnGameThread);
  147. cwi.c(\u2603);
  148. }
  149.  
  150. public static void depthMask(final boolean \u2603) {
  151. assertThread(RenderSystem::isOnGameThread);
  152. cwi.a(\u2603);
  153. }
  154.  
  155. public static void enableBlend() {
  156. assertThread(RenderSystem::isOnGameThread);
  157. cwi.n();
  158. }
  159.  
  160. public static void disableBlend() {
  161. assertThread(RenderSystem::isOnGameThread);
  162. cwi.m();
  163. }
  164.  
  165. public static void blendFunc(final cwi.r \u2603, final cwi.l \u2603) {
  166. assertThread(RenderSystem::isOnGameThread);
  167. cwi.b(\u2603.p, \u2603.o);
  168. }
  169.  
  170. public static void blendFunc(final int \u2603, final int \u2603) {
  171. assertThread(RenderSystem::isOnGameThread);
  172. cwi.b(\u2603, \u2603);
  173. }
  174.  
  175. public static void blendFuncSeparate(final cwi.r \u2603, final cwi.l \u2603, final cwi.r \u2603, final cwi.l \u2603) {
  176. assertThread(RenderSystem::isOnGameThread);
  177. cwi.a(\u2603.p, \u2603.o, \u2603.p, \u2603.o);
  178. }
  179.  
  180. public static void blendFuncSeparate(final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  181. assertThread(RenderSystem::isOnGameThread);
  182. cwi.a(\u2603, \u2603, \u2603, \u2603);
  183. }
  184.  
  185. public static void blendEquation(final int \u2603) {
  186. assertThread(RenderSystem::isOnGameThread);
  187. cwi.d(\u2603);
  188. }
  189.  
  190. public static void setupSolidRenderingTextureCombine(final int \u2603) {
  191. assertThread(RenderSystem::isOnGameThread);
  192. cwi.e(\u2603);
  193. }
  194.  
  195. public static void tearDownSolidRenderingTextureCombine() {
  196. assertThread(RenderSystem::isOnGameThread);
  197. cwi.o();
  198. }
  199.  
  200. public static void enableFog() {
  201. assertThread(RenderSystem::isOnGameThread);
  202. cwi.y();
  203. }
  204.  
  205. public static void disableFog() {
  206. assertThread(RenderSystem::isOnGameThread);
  207. cwi.z();
  208. }
  209.  
  210. public static void fogMode(final cwi.n \u2603) {
  211. assertThread(RenderSystem::isOnGameThread);
  212. cwi.r(\u2603.d);
  213. }
  214.  
  215. public static void fogMode(final int \u2603) {
  216. assertThread(RenderSystem::isOnGameThread);
  217. cwi.r(\u2603);
  218. }
  219.  
  220. public static void fogDensity(final float \u2603) {
  221. assertThread(RenderSystem::isOnGameThread);
  222. cwi.a(\u2603);
  223. }
  224.  
  225. public static void fogStart(final float \u2603) {
  226. assertThread(RenderSystem::isOnGameThread);
  227. cwi.b(\u2603);
  228. }
  229.  
  230. public static void fogEnd(final float \u2603) {
  231. assertThread(RenderSystem::isOnGameThread);
  232. cwi.c(\u2603);
  233. }
  234.  
  235. public static void fog(final int \u2603, final FloatBuffer \u2603) {
  236. assertThread(RenderSystem::isOnGameThread);
  237. cwi.f(\u2603, \u2603);
  238. }
  239.  
  240. public static void fogi(final int \u2603, final int \u2603) {
  241. assertThread(RenderSystem::isOnGameThread);
  242. cwi.l(\u2603, \u2603);
  243. }
  244.  
  245. public static void enableCull() {
  246. assertThread(RenderSystem::isOnGameThread);
  247. cwi.A();
  248. }
  249.  
  250. public static void disableCull() {
  251. assertThread(RenderSystem::isOnGameThread);
  252. cwi.B();
  253. }
  254.  
  255. public static void cullFace(final cwi.i \u2603) {
  256. assertThread(RenderSystem::isOnGameThread);
  257. cwi.s(\u2603.d);
  258. }
  259.  
  260. public static void cullFace(final int \u2603) {
  261. assertThread(RenderSystem::isOnGameThread);
  262. cwi.s(\u2603);
  263. }
  264.  
  265. public static void polygonMode(final int \u2603, final int \u2603) {
  266. assertThread(RenderSystem::isOnGameThread);
  267. cwi.m(\u2603, \u2603);
  268. }
  269.  
  270. public static void enablePolygonOffset() {
  271. assertThread(RenderSystem::isOnGameThread);
  272. cwi.C();
  273. }
  274.  
  275. public static void disablePolygonOffset() {
  276. assertThread(RenderSystem::isOnGameThread);
  277. cwi.D();
  278. }
  279.  
  280. public static void enableLineOffset() {
  281. assertThread(RenderSystem::isOnGameThread);
  282. cwi.E();
  283. }
  284.  
  285. public static void disableLineOffset() {
  286. assertThread(RenderSystem::isOnGameThread);
  287. cwi.F();
  288. }
  289.  
  290. public static void polygonOffset(final float \u2603, final float \u2603) {
  291. assertThread(RenderSystem::isOnGameThread);
  292. cwi.a(\u2603, \u2603);
  293. }
  294.  
  295. public static void enableColorLogicOp() {
  296. assertThread(RenderSystem::isOnGameThread);
  297. cwi.G();
  298. }
  299.  
  300. public static void disableColorLogicOp() {
  301. assertThread(RenderSystem::isOnGameThread);
  302. cwi.H();
  303. }
  304.  
  305. public static void logicOp(final cwi.p \u2603) {
  306. assertThread(RenderSystem::isOnGameThread);
  307. cwi.t(\u2603.q);
  308. }
  309.  
  310. public static void logicOp(final int \u2603) {
  311. assertThread(RenderSystem::isOnGameThread);
  312. cwi.t(\u2603);
  313. }
  314.  
  315. public static void enableTexGen(final cwi.u \u2603) {
  316. assertThread(RenderSystem::isOnGameThread);
  317. cwi.a(\u2603);
  318. }
  319.  
  320. public static void disableTexGen(final cwi.u \u2603) {
  321. assertThread(RenderSystem::isOnGameThread);
  322. cwi.b(\u2603);
  323. }
  324.  
  325. public static void texGenMode(final cwi.u \u2603, final int \u2603) {
  326. assertThread(RenderSystem::isOnGameThread);
  327. cwi.a(\u2603, \u2603);
  328. }
  329.  
  330. public static void texGenParam(final cwi.u \u2603, final int \u2603, final FloatBuffer \u2603) {
  331. assertThread(RenderSystem::isOnGameThread);
  332. cwi.a(\u2603, \u2603, \u2603);
  333. }
  334.  
  335. public static void activeTexture(final int \u2603) {
  336. assertThread(RenderSystem::isOnGameThread);
  337. cwi.u(\u2603);
  338. }
  339.  
  340. public static void enableTexture() {
  341. assertThread(RenderSystem::isOnGameThread);
  342. cwi.I();
  343. }
  344.  
  345. public static void disableTexture() {
  346. assertThread(RenderSystem::isOnGameThread);
  347. cwi.J();
  348. }
  349.  
  350. public static void texParameter(final int \u2603, final int \u2603, final int \u2603) {
  351. cwi.b(\u2603, \u2603, \u2603);
  352. }
  353.  
  354. public static void deleteTexture(final int \u2603) {
  355. assertThread(RenderSystem::isOnGameThreadOrInit);
  356. cwi.v(\u2603);
  357. }
  358.  
  359. public static void bindTexture(final int \u2603) {
  360. cwi.w(\u2603);
  361. }
  362.  
  363. public static void texImage2D(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, @Nullable final IntBuffer \u2603) {
  364. assertThread(RenderSystem::isOnGameThreadOrInit);
  365. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603);
  366. }
  367.  
  368. public static void texSubImage2D(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final long \u2603) {
  369. assertThread(RenderSystem::isOnGameThreadOrInit);
  370. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603);
  371. }
  372.  
  373. public static void copyTexSubImage2D(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  374. assertThread(RenderSystem::isOnGameThread);
  375. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603);
  376. }
  377.  
  378. public static void getTexImage(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final long \u2603) {
  379. assertThread(RenderSystem::isOnGameThread);
  380. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603);
  381. }
  382.  
  383. public static void enableNormalize() {
  384. assertThread(RenderSystem::isOnGameThread);
  385. cwi.L();
  386. }
  387.  
  388. public static void disableNormalize() {
  389. assertThread(RenderSystem::isOnGameThread);
  390. cwi.M();
  391. }
  392.  
  393. public static void shadeModel(final int \u2603) {
  394. assertThread(RenderSystem::isOnGameThread);
  395. cwi.x(\u2603);
  396. }
  397.  
  398. public static void enableRescaleNormal() {
  399. assertThread(RenderSystem::isOnGameThread);
  400. cwi.N();
  401. }
  402.  
  403. public static void disableRescaleNormal() {
  404. assertThread(RenderSystem::isOnGameThread);
  405. cwi.O();
  406. }
  407.  
  408. public static void viewport(final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  409. assertThread(RenderSystem::isOnGameThreadOrInit);
  410. cwi.e(\u2603, \u2603, \u2603, \u2603);
  411. }
  412.  
  413. public static void colorMask(final boolean \u2603, final boolean \u2603, final boolean \u2603, final boolean \u2603) {
  414. assertThread(RenderSystem::isOnGameThread);
  415. cwi.a(\u2603, \u2603, \u2603, \u2603);
  416. }
  417.  
  418. public static void stencilFunc(final int \u2603, final int \u2603, final int \u2603) {
  419. assertThread(RenderSystem::isOnGameThread);
  420. cwi.d(\u2603, \u2603, \u2603);
  421. }
  422.  
  423. public static void stencilMask(final int \u2603) {
  424. assertThread(RenderSystem::isOnGameThread);
  425. cwi.y(\u2603);
  426. }
  427.  
  428. public static void stencilOp(final int \u2603, final int \u2603, final int \u2603) {
  429. assertThread(RenderSystem::isOnGameThread);
  430. cwi.e(\u2603, \u2603, \u2603);
  431. }
  432.  
  433. public static void clearDepth(final double \u2603) {
  434. assertThread(RenderSystem::isOnGameThreadOrInit);
  435. cwi.a(\u2603);
  436. }
  437.  
  438. public static void clearColor(final float \u2603, final float \u2603, final float \u2603, final float \u2603) {
  439. assertThread(RenderSystem::isOnGameThreadOrInit);
  440. cwi.a(\u2603, \u2603, \u2603, \u2603);
  441. }
  442.  
  443. public static void clearStencil(final int \u2603) {
  444. assertThread(RenderSystem::isOnGameThread);
  445. cwi.z(\u2603);
  446. }
  447.  
  448. public static void clear(final int \u2603, final boolean \u2603) {
  449. assertThread(RenderSystem::isOnGameThreadOrInit);
  450. cwi.b(\u2603, \u2603);
  451. }
  452.  
  453. public static void matrixMode(final int \u2603) {
  454. assertThread(RenderSystem::isOnGameThread);
  455. cwi.A(\u2603);
  456. }
  457.  
  458. public static void loadIdentity() {
  459. assertThread(RenderSystem::isOnGameThread);
  460. cwi.P();
  461. }
  462.  
  463. public static void pushMatrix() {
  464. assertThread(RenderSystem::isOnGameThread);
  465. cwi.Q();
  466. }
  467.  
  468. public static void popMatrix() {
  469. assertThread(RenderSystem::isOnGameThread);
  470. cwi.R();
  471. }
  472.  
  473. public static void getMatrix(final int \u2603, final FloatBuffer \u2603) {
  474. assertThread(RenderSystem::isOnGameThread);
  475. cwi.g(\u2603, \u2603);
  476. }
  477.  
  478. public static void getMatrix4f(final int \u2603, final Consumer<cxl> \u2603) {
  479. assertThread(RenderSystem::isOnGameThread);
  480. \u2603.accept(cwi.B(\u2603));
  481. }
  482.  
  483. public static void ortho(final double \u2603, final double \u2603, final double \u2603, final double \u2603, final double \u2603, final double \u2603) {
  484. assertThread(RenderSystem::isOnGameThread);
  485. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603, \u2603);
  486. }
  487.  
  488. public static void rotatef(final float \u2603, final float \u2603, final float \u2603, final float \u2603) {
  489. assertThread(RenderSystem::isOnGameThread);
  490. cwi.b(\u2603, \u2603, \u2603, \u2603);
  491. }
  492.  
  493. public static void rotated(final double \u2603, final double \u2603, final double \u2603, final double \u2603) {
  494. assertThread(RenderSystem::isOnGameThread);
  495. cwi.a(\u2603, \u2603, \u2603, \u2603);
  496. }
  497.  
  498. public static void scalef(final float \u2603, final float \u2603, final float \u2603) {
  499. assertThread(RenderSystem::isOnGameThread);
  500. cwi.b(\u2603, \u2603, \u2603);
  501. }
  502.  
  503. public static void scaled(final double \u2603, final double \u2603, final double \u2603) {
  504. assertThread(RenderSystem::isOnGameThread);
  505. cwi.a(\u2603, \u2603, \u2603);
  506. }
  507.  
  508. public static void translatef(final float \u2603, final float \u2603, final float \u2603) {
  509. assertThread(RenderSystem::isOnGameThread);
  510. cwi.c(\u2603, \u2603, \u2603);
  511. }
  512.  
  513. public static void translated(final double \u2603, final double \u2603, final double \u2603) {
  514. assertThread(RenderSystem::isOnGameThread);
  515. cwi.b(\u2603, \u2603, \u2603);
  516. }
  517.  
  518. public static void multMatrix(final FloatBuffer \u2603) {
  519. assertThread(RenderSystem::isOnGameThread);
  520. cwi.a(\u2603);
  521. }
  522.  
  523. public static void multMatrix(final cxl \u2603) {
  524. assertThread(RenderSystem::isOnGameThread);
  525. cwi.a(\u2603);
  526. }
  527.  
  528. public static void color4f(final float \u2603, final float \u2603, final float \u2603, final float \u2603) {
  529. assertThread(RenderSystem::isOnGameThread);
  530. cwi.c(\u2603, \u2603, \u2603, \u2603);
  531. }
  532.  
  533. public static void color3f(final float \u2603, final float \u2603, final float \u2603) {
  534. assertThread(RenderSystem::isOnGameThread);
  535. cwi.c(\u2603, \u2603, \u2603, 1.0f);
  536. }
  537.  
  538. public static void clearCurrentColor() {
  539. assertThread(RenderSystem::isOnGameThread);
  540. cwi.S();
  541. }
  542.  
  543. public static void drawArrays(final int \u2603, final int \u2603, final int \u2603) {
  544. assertThread(RenderSystem::isOnGameThread);
  545. cwi.f(\u2603, \u2603, \u2603);
  546. }
  547.  
  548. public static void lineWidth(final float \u2603) {
  549. assertThread(RenderSystem::isOnGameThread);
  550. cwi.d(\u2603);
  551. }
  552.  
  553. public static void pixelStore(final int \u2603, final int \u2603) {
  554. assertThread(RenderSystem::isOnGameThreadOrInit);
  555. cwi.n(\u2603, \u2603);
  556. }
  557.  
  558. public static void pixelTransfer(final int \u2603, final float \u2603) {
  559. cwi.b(\u2603, \u2603);
  560. }
  561.  
  562. public static void readPixels(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603, final ByteBuffer \u2603) {
  563. assertThread(RenderSystem::isOnGameThread);
  564. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603, \u2603, \u2603);
  565. }
  566.  
  567. public static void getError(final Consumer<Integer> \u2603) {
  568. assertThread(RenderSystem::isOnGameThread);
  569. \u2603.accept(cwi.T());
  570. }
  571.  
  572. public static void getString(final int \u2603, final Consumer<String> \u2603) {
  573. assertThread(RenderSystem::isOnGameThread);
  574. \u2603.accept(cwi.G(\u2603));
  575. }
  576.  
  577. public static String getBackendDescription() {
  578. assertThread(RenderSystem::isInInitPhase);
  579. return String.format("LWJGL version %s", GLX._getLWJGLVersion());
  580. }
  581.  
  582. public static String getApiDescription() {
  583. assertThread(RenderSystem::isInInitPhase);
  584. return GLX.getOpenGLVersionString();
  585. }
  586.  
  587. public static LongSupplier initBackendSystem() {
  588. assertThread(RenderSystem::isInInitPhase);
  589. return GLX._initGlfw();
  590. }
  591.  
  592. public static void initRenderer(final int \u2603, final boolean \u2603) {
  593. assertThread(RenderSystem::isInInitPhase);
  594. GLX._init(\u2603, \u2603);
  595. }
  596.  
  597. public static void setErrorCallback(final GLFWErrorCallbackI \u2603) {
  598. assertThread(RenderSystem::isInInitPhase);
  599. GLX._setGlfwErrorCallback(\u2603);
  600. }
  601.  
  602. public static void pollEvents() {
  603. }
  604.  
  605. public static void recordRenderCall(final cvy \u2603) {
  606. RenderSystem.recordingQueue.add(\u2603);
  607. }
  608.  
  609. public static void glClientActiveTexture(final int \u2603) {
  610. assertThread(RenderSystem::isOnGameThread);
  611. cwi.q(\u2603);
  612. }
  613.  
  614. public static void renderCrosshair(final int \u2603) {
  615. assertThread(RenderSystem::isOnGameThread);
  616. GLX._renderCrosshair(\u2603, true, true, true);
  617. }
  618.  
  619. public static void setupNvFogDistance() {
  620. assertThread(RenderSystem::isOnGameThread);
  621. GLX._setupNvFogDistance();
  622. }
  623.  
  624. public static void glMultiTexCoord2f(final int \u2603, final float \u2603, final float \u2603) {
  625. assertThread(RenderSystem::isOnGameThread);
  626. cwi.a(\u2603, \u2603, \u2603);
  627. }
  628.  
  629. public static String getCapsString() {
  630. assertThread(RenderSystem::isOnGameThread);
  631. return GLX._getCapsString();
  632. }
  633.  
  634. public static void setupDefaultState(final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  635. assertThread(RenderSystem::isInInitPhase);
  636. cwi.I();
  637. cwi.x(7425);
  638. cwi.a(1.0);
  639. cwi.l();
  640. cwi.c(515);
  641. cwi.f();
  642. cwi.a(516, 0.1f);
  643. cwi.s(cwi.i.b.d);
  644. cwi.A(5889);
  645. cwi.P();
  646. cwi.A(5888);
  647. cwi.e(\u2603, \u2603, \u2603, \u2603);
  648. }
  649.  
  650. public static int maxSupportedTextureSize() {
  651. assertThread(RenderSystem::isInInitPhase);
  652. if (RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE == -1) {
  653. for (int i = 16384; i > 0; i >>= 1) {
  654. cwi.a(32868, 0, 6408, i, i, 0, 6408, 5121, (IntBuffer)null);
  655. final int c = cwi.c(32868, 0, 4096);
  656. if (c != 0) {
  657. return RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE = i;
  658. }
  659. }
  660. RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE = abe.a(cwi.H(3379), 1024, 16384);
  661. RenderSystem.LOGGER.info("Failed to determine maximum texture size by probing, trying GL_MAX_TEXTURE_SIZE = {}", (Object)RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE);
  662. }
  663. return RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE;
  664. }
  665.  
  666. public static void flipFrame() {
  667. GLFW.glfwPollEvents();
  668. RenderSystem.isReplayingQueue = true;
  669. while (!RenderSystem.recordingQueue.isEmpty()) {
  670. final cvy cvy = RenderSystem.recordingQueue.poll();
  671. cvy.execute();
  672. }
  673. RenderSystem.isReplayingQueue = false;
  674. cxh.a().c().j();
  675. }
  676.  
  677. public static void glBindFramebuffer(final int \u2603, final int \u2603) {
  678. assertThread(RenderSystem::isOnGameThreadOrInit);
  679. cwi.h(\u2603, \u2603);
  680. }
  681.  
  682. public static void glDeleteRenderbuffers(final int \u2603) {
  683. assertThread(RenderSystem::isOnGameThreadOrInit);
  684. cwi.m(\u2603);
  685. }
  686.  
  687. public static void glDeleteFramebuffers(final int \u2603) {
  688. assertThread(RenderSystem::isOnGameThreadOrInit);
  689. cwi.n(\u2603);
  690. }
  691.  
  692. public static void glFramebufferTexture2D(final int \u2603, final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  693. assertThread(RenderSystem::isOnGameThreadOrInit);
  694. cwi.a(\u2603, \u2603, \u2603, \u2603, \u2603);
  695. }
  696.  
  697. public static void glBindRenderbuffer(final int \u2603, final int \u2603) {
  698. assertThread(RenderSystem::isOnGameThreadOrInit);
  699. cwi.i(\u2603, \u2603);
  700. }
  701.  
  702. public static void glRenderbufferStorage(final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  703. assertThread(RenderSystem::isOnGameThreadOrInit);
  704. cwi.b(\u2603, \u2603, \u2603, \u2603);
  705. }
  706.  
  707. public static void glFramebufferRenderbuffer(final int \u2603, final int \u2603, final int \u2603, final int \u2603) {
  708. assertThread(RenderSystem::isOnGameThreadOrInit);
  709. cwi.c(\u2603, \u2603, \u2603, \u2603);
  710. }
  711.  
  712. public static void glBindBuffer(final int \u2603, final Supplier<Integer> \u2603) {
  713. cwi.g(\u2603, (int)\u2603.get());
  714. }
  715.  
  716. public static void glBufferData(final int \u2603, final ByteBuffer \u2603, final int \u2603) {
  717. assertThread(RenderSystem::isOnRenderThreadOrInit);
  718. cwi.a(\u2603, \u2603, \u2603);
  719. }
  720.  
  721. public static void glDeleteBuffers(final int \u2603) {
  722. assertThread(RenderSystem::isOnGameThread);
  723. cwi.l(\u2603);
  724. }
  725.  
  726. public static void glUniform1i(final int \u2603, final int \u2603) {
  727. assertThread(RenderSystem::isOnGameThread);
  728. cwi.f(\u2603, \u2603);
  729. }
  730.  
  731. public static void glUniform1(final int \u2603, final IntBuffer \u2603) {
  732. assertThread(RenderSystem::isOnGameThread);
  733. cwi.a(\u2603, \u2603);
  734. }
  735.  
  736. public static void glUniform2(final int \u2603, final IntBuffer \u2603) {
  737. assertThread(RenderSystem::isOnGameThread);
  738. cwi.b(\u2603, \u2603);
  739. }
  740.  
  741. public static void glUniform3(final int \u2603, final IntBuffer \u2603) {
  742. assertThread(RenderSystem::isOnGameThread);
  743. cwi.c(\u2603, \u2603);
  744. }
  745.  
  746. public static void glUniform4(final int \u2603, final IntBuffer \u2603) {
  747. assertThread(RenderSystem::isOnGameThread);
  748. cwi.d(\u2603, \u2603);
  749. }
  750.  
  751. public static void glUniform1(final int \u2603, final FloatBuffer \u2603) {
  752. assertThread(RenderSystem::isOnGameThread);
  753. cwi.b(\u2603, \u2603);
  754. }
  755.  
  756. public static void glUniform2(final int \u2603, final FloatBuffer \u2603) {
  757. assertThread(RenderSystem::isOnGameThread);
  758. cwi.c(\u2603, \u2603);
  759. }
  760.  
  761. public static void glUniform3(final int \u2603, final FloatBuffer \u2603) {
  762. assertThread(RenderSystem::isOnGameThread);
  763. cwi.d(\u2603, \u2603);
  764. }
  765.  
  766. public static void glUniform4(final int \u2603, final FloatBuffer \u2603) {
  767. assertThread(RenderSystem::isOnGameThread);
  768. cwi.e(\u2603, \u2603);
  769. }
  770.  
  771. public static void glUniformMatrix2(final int \u2603, final boolean \u2603, final FloatBuffer \u2603) {
  772. assertThread(RenderSystem::isOnGameThread);
  773. cwi.a(\u2603, \u2603, \u2603);
  774. }
  775.  
  776. public static void glUniformMatrix3(final int \u2603, final boolean \u2603, final FloatBuffer \u2603) {
  777. assertThread(RenderSystem::isOnGameThread);
  778. cwi.b(\u2603, \u2603, \u2603);
  779. }
  780.  
  781. public static void glUniformMatrix4(final int \u2603, final boolean \u2603, final FloatBuffer \u2603) {
  782. assertThread(RenderSystem::isOnGameThread);
  783. cwi.c(\u2603, \u2603, \u2603);
  784. }
  785.  
  786. public static void glUseProgram(final int \u2603) {
  787. assertThread(RenderSystem::isOnGameThread);
  788. cwi.i(\u2603);
  789. }
  790.  
  791. public static void setupOverlayColor(final int \u2603, final boolean \u2603) {
  792. assertThread(RenderSystem::isOnGameThread);
  793. cwi.a(\u2603, \u2603);
  794. }
  795.  
  796. public static void teardownOverlayColor() {
  797. assertThread(RenderSystem::isOnGameThread);
  798. cwi.t();
  799. }
  800.  
  801. public static void enableUsualDiffuseLighting() {
  802. assertThread(RenderSystem::isOnGameThread);
  803. cwi.v();
  804. }
  805.  
  806. public static void enableGuiDiffuseLighting() {
  807. assertThread(RenderSystem::isOnGameThread);
  808. cwi.w();
  809. }
  810.  
  811. public static void disableDiffuseLighting() {
  812. assertThread(RenderSystem::isOnGameThread);
  813. cwi.x();
  814. }
  815.  
  816. public static void setProfile(final RenderSystem.a \u2603) {
  817. \u2603.a();
  818. }
  819.  
  820. public static void unsetProfile(final RenderSystem.a \u2603) {
  821. \u2603.b();
  822. }
  823.  
  824. public static void beginInitialization() {
  825. RenderSystem.isInInit = true;
  826. }
  827.  
  828. public static void finishInitialization() {
  829. RenderSystem.isInInit = false;
  830. if (!RenderSystem.recordingQueue.isEmpty()) {
  831. flipFrame();
  832. }
  833. if (!RenderSystem.recordingQueue.isEmpty()) {
  834. throw new IllegalStateException("Recorded to render queue during initialization");
  835. }
  836. }
  837.  
  838. public static void glGenBuffers(final Consumer<Integer> \u2603) {
  839. if (!isOnRenderThread()) {
  840. recordRenderCall(() -> \u2603.accept(cwi.q()));
  841. }
  842. else {
  843. \u2603.accept(cwi.q());
  844. }
  845. }
  846.  
  847. public static cxh renderThreadTesselator() {
  848. assertThread(RenderSystem::isOnRenderThread);
  849. return RenderSystem.RENDER_THREAD_TESSELATOR;
  850. }
  851.  
  852. public static void defaultBlendFunc() {
  853. blendFuncSeparate(cwi.r.l, cwi.l.j, cwi.r.e, cwi.l.n);
  854. }
  855.  
  856. public static void defaultAlphaFunc() {
  857. alphaFunc(516, 0.1f);
  858. }
  859.  
  860. private static void setupDefaultGlState() {
  861. assertThread(RenderSystem::isOnGameThread);
  862. cwi.u();
  863. }
  864.  
  865. static {
  866. LOGGER = LogManager.getLogger();
  867. recordingQueue = Queues.newConcurrentLinkedQueue();
  868. RENDER_THREAD_TESSELATOR = new cxh();
  869. RenderSystem.MAX_SUPPORTED_TEXTURE_SIZE = -1;
  870. }
  871. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement