ClipboardManager.java
com.mojang.blaze3d.platform.ClipboardManager
信息
- 全限定名:com.mojang.blaze3d.platform.ClipboardManager
- 类型:public class
- 包:com.mojang.blaze3d.platform
- 源码路径:src/main/java/com/mojang/blaze3d/platform/ClipboardManager.java
- 起始行号:L15
- 职责:
TODO
字段/常量
-
FORMAT_UNAVAILABLE- 类型:
int - 修饰符:
public static final - 源码定位:
L16 - 说明:
TODO
- 类型:
-
clipboardScratchBuffer- 类型:
ByteBuffer - 修饰符:
private final - 源码定位:
L17 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
- 无
方法
下面的方法块按源码顺序生成。
public String getClipboard(Window window, GLFWErrorCallbackI errorCallback) @ L19
- 方法名:getClipboard
- 源码定位:L19
- 返回类型:String
- 修饰符:public
参数:
- window: Window
- errorCallback: GLFWErrorCallbackI
说明:
TODO
private static void pushClipboard(Window window, ByteBuffer buffer, byte[] data) @ L30
- 方法名:pushClipboard
- 源码定位:L30
- 返回类型:void
- 修饰符:private static
参数:
- window: Window
- buffer: ByteBuffer
- data: byte[]
说明:
TODO
public void setClipboard(Window window, String clipboard) @ L38
- 方法名:setClipboard
- 源码定位:L38
- 返回类型:void
- 修饰符:public
参数:
- window: Window
- clipboard: String
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ClipboardManager {
public static final int FORMAT_UNAVAILABLE = 65545;
private final ByteBuffer clipboardScratchBuffer = BufferUtils.createByteBuffer(8192);
public String getClipboard(Window window, GLFWErrorCallbackI errorCallback) {
String var5;
try (GLFWErrorScope ignored = new GLFWErrorScope(errorCallback)) {
String clipboard = GLFW.glfwGetClipboardString(window.handle());
clipboard = clipboard != null ? StringDecomposer.filterBrokenSurrogates(clipboard) : "";
var5 = clipboard;
}
return var5;
}
private static void pushClipboard(Window window, ByteBuffer buffer, byte[] data) {
buffer.clear();
buffer.put(data);
buffer.put((byte)0);
buffer.flip();
GLFW.glfwSetClipboardString(window.handle(), buffer);
}
public void setClipboard(Window window, String clipboard) {
byte[] encoded = clipboard.getBytes(StandardCharsets.UTF_8);
int encodedLength = encoded.length + 1;
if (encodedLength < this.clipboardScratchBuffer.capacity()) {
pushClipboard(window, this.clipboardScratchBuffer, encoded);
} else {
ByteBuffer buffer = MemoryUtil.memAlloc(encodedLength);
try {
pushClipboard(window, buffer, encoded);
} finally {
MemoryUtil.memFree(buffer);
}
}
}
}引用的其他类
-
- 引用位置:
构造调用 - 关联成员:
GLFWErrorScope()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
StringDecomposer.filterBrokenSurrogates()
- 引用位置: