{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreihankdadps6zdd657r3dratythc2sh2jgmosikyabyvftoljd4jzy",
    "uri": "at://did:plc:dxjzgxe7cvirxkwfjr2tjspt/app.bsky.feed.post/3mjipuywtfp72"
  },
  "path": "/t/jme-vulkan/49551#post_3",
  "publishedAt": "2026-04-13T09:30:34.000Z",
  "site": "https://hub.jmonkeyengine.org",
  "tags": [
    "@Override"
  ],
  "textContent": "OpenGL has its own unique features, and some functionalities that only exist in OpenGL are not natively available in Vulkan.\nI may have used alternative approaches to simulate them, but that may not be the optimal solution.\nThis likely requires further experimentation and discussion to finalize the best implementation.\n\n\n        // --- 空实现或未支持的方法 ---\n        @Override public void invalidateState() {}\n        @Override public void setDepthRange(float start, float end) {}\n        @Override public void postFrame() {}\n        @Override public void deleteShader(Shader shader) {}\n        @Override public void deleteShaderSource(Shader.ShaderSource source) {}\n        @Override public void copyFrameBuffer(FrameBuffer src, FrameBuffer dst, boolean copyDepth) {}\n        @Override public void copyFrameBuffer(FrameBuffer src, FrameBuffer dst, boolean copyColor, boolean copyDepth) {}\n        @Override public void setMainFrameBufferOverride(FrameBuffer fb) {}\n        @Override public void readFrameBuffer(FrameBuffer fb, ByteBuffer byteBuf) {}\n        @Override public void readFrameBufferWithFormat(FrameBuffer fb, ByteBuffer byteBuf, Image.Format format) {}\n        @Override public void deleteFrameBuffer(FrameBuffer fb) {}\n        @Override public void updateBufferData(BufferObject bo) {}\n        @Override public void deleteBuffer(BufferObject bo) {}\n        @Override public void popDebugGroup() { Renderer.super.popDebugGroup(); }\n        @Override public void pushDebugGroup(String name) { Renderer.super.pushDebugGroup(name); }\n        @Override public void resetGLObjects() {}\n        @Override public void setDefaultAnisotropicFilter(int level) {}\n        @Override public void setAlphaToCoverage(boolean value) {}\n        @Override public void setMainFrameBufferSrgb(boolean srgb) {}\n        @Override public void setLinearizeSrgbImages(boolean linearize) {}\n        @Override public int[] generateProfilingTasks(int numTasks) { return new int[0]; }\n        @Override public void startProfiling(int taskId) {}\n        @Override public void stopProfiling() {}\n        @Override public long getProfilingTime(int taskId) { return 0; }\n        @Override public boolean isTaskResultAvailable(int taskId) { return false; }\n        @Override public boolean getAlphaToCoverage() { return false; }\n        @Override public int getDefaultAnisotropicFilter() { return 0; }\n        @Override public float getMaxLineWidth() { return 1.0f; }\n        @Override public boolean isLinearizeSrgbImages() { return false; }\n        @Override public boolean isMainFrameBufferSrgb() { return false; }\n\n\nFor instance, some of these aspects need to be improved, while others need to be abandoned. But all of this will be discussed later.",
  "title": "jme-Vulkan"
}