External Publication
Visit Post

jme-Vulkan

jMonkeyEngine Hub April 13, 2026
Source
OpenGL has its own unique features, and some functionalities that only exist in OpenGL are not natively available in Vulkan. I may have used alternative approaches to simulate them, but that may not be the optimal solution. This likely requires further experimentation and discussion to finalize the best implementation. // --- 空实现或未支持的方法 --- @Override public void invalidateState() {} @Override public void setDepthRange(float start, float end) {} @Override public void postFrame() {} @Override public void deleteShader(Shader shader) {} @Override public void deleteShaderSource(Shader.ShaderSource source) {} @Override public void copyFrameBuffer(FrameBuffer src, FrameBuffer dst, boolean copyDepth) {} @Override public void copyFrameBuffer(FrameBuffer src, FrameBuffer dst, boolean copyColor, boolean copyDepth) {} @Override public void setMainFrameBufferOverride(FrameBuffer fb) {} @Override public void readFrameBuffer(FrameBuffer fb, ByteBuffer byteBuf) {} @Override public void readFrameBufferWithFormat(FrameBuffer fb, ByteBuffer byteBuf, Image.Format format) {} @Override public void deleteFrameBuffer(FrameBuffer fb) {} @Override public void updateBufferData(BufferObject bo) {} @Override public void deleteBuffer(BufferObject bo) {} @Override public void popDebugGroup() { Renderer.super.popDebugGroup(); } @Override public void pushDebugGroup(String name) { Renderer.super.pushDebugGroup(name); } @Override public void resetGLObjects() {} @Override public void setDefaultAnisotropicFilter(int level) {} @Override public void setAlphaToCoverage(boolean value) {} @Override public void setMainFrameBufferSrgb(boolean srgb) {} @Override public void setLinearizeSrgbImages(boolean linearize) {} @Override public int[] generateProfilingTasks(int numTasks) { return new int[0]; } @Override public void startProfiling(int taskId) {} @Override public void stopProfiling() {} @Override public long getProfilingTime(int taskId) { return 0; } @Override public boolean isTaskResultAvailable(int taskId) { return false; } @Override public boolean getAlphaToCoverage() { return false; } @Override public int getDefaultAnisotropicFilter() { return 0; } @Override public float getMaxLineWidth() { return 1.0f; } @Override public boolean isLinearizeSrgbImages() { return false; } @Override public boolean isMainFrameBufferSrgb() { return false; } For instance, some of these aspects need to be improved, while others need to be abandoned. But all of this will be discussed later.

Discussion in the ATmosphere

Loading comments...