我想为我在 Windows 7 上运行的 lwjgl 进程添加一个任务栏图标。
Display.setIcon 成功更改了窗口左上角的图标,但不在任务栏中。
做什么?
我的代码,类似于:
ArrayList<ByteBuffer> byteBuffers = new ArrayList<ByteBuffer>();
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon32x32.png") );
byteBuffers.add( ImageHelper.loadImageAsIconImage("stickmanicon16x16.png") );
System.out.println( "taskbaricon result: " + Display.setIcon(byteBuffers.toArray(new ByteBuffer[]{})) );
Run Code Online (Sandbox Code Playgroud)
我也尝试添加 40x40 图像,但没有变化。
我正在使用 LWJGL 开发游戏。在移动窗口时(计划在未来添加调整大小的代码),渲染循环冻结。我希望它在移动时继续以某种方式运行。LWJGL 不包括 glutMainLoop。
Display 属于 OpenGL,而不是 Java。
相关代码:
regular = new DisplayMode(800,600);
GL11.glClearColor(0.47f,0.55f,1.0f, 0.0f);
GL11.glClearDepth(1.0f);
try {
Display.setDisplayMode(regular);
Display.setTitle("Game Name");
Display.setIcon(loadIcon("resources/icon.png"));
Display.create();
seedresult= new Random(seed);
} catch (LWJGLException e) {
e.printStackTrace();
}
while (!Display.isCloseRequested()) {
Display.sync(60);
GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
//render objects
Display.update();}
System.exit(0);
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用 OpenAL。
我已成功将 WAV 文件加载到其中,并成功播放它们。这很容易。
现在,我需要能够将音乐流式传输到 OpenAL 中,而不是将整个文件加载到其中。虽然这对于声音效果等有好处,但正如您可能知道的那样,对于音乐来说可能非常危险。
问题是,我似乎无法在谷歌上找到与此相关的任何内容。虽然我找到了一些与流 OGG 文件相关的示例,但我更愿意制作一个支持所有音乐文件的系统。
据我了解,OpenAL 应该为此内置函数。但我找不到他们。
所以,我的问题是,如何将音频流式传输到 OpenAL 的缓冲区中,同时删除已播放的部分并导入尚未播放的部分?
如果这是一个无知的问题,我深表歉意。
我正在尝试更改 LWJGL 中顶点着色器中点的大小,但无法使其正常工作。如果我尝试从着色器更改点大小,则点大小始终为 1px。
顶点着色器:
void main(){
gl_Position = gl_ModelViewProjectionMatrix*gl_Vertex;
gl_PointSize = 10.0;
}
Run Code Online (Sandbox Code Playgroud)
片段着色器:
void main(){
gl_FrontColor = gl_Color;
}
Run Code Online (Sandbox Code Playgroud)
绘制代码:
glClear(GL_COLOR_BUFFER_BIT);
glBindBuffer(GL_ARRAY_BUFFER, p_vbo);
glVertexPointer(3, GL_FLOAT, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, c_vbo);
glColorPointer(4, GL_FLOAT, 0, 0);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glDrawArrays(GL_POINTS, 0, particles_num);
glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
Run Code Online (Sandbox Code Playgroud)
我的目标是动态更改点大小,但我无法从着色器更改点大小。如果我调用此代码:
glPointSize(10.0f);
Run Code Online (Sandbox Code Playgroud)
从 java 开始,大小发生了变化,但我希望能够为每个点做到这一点。我已经启用了我的着色器来改变点的大小:
glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
Run Code Online (Sandbox Code Playgroud)
澄清一下:我可以渲染我的所有点,并且一切正常,但点大小始终为 1px。我也没有使用平滑点。
编辑:glGetFloat(GL_POINT_SIZE_RANGE) 返回 1.0,这应该表明我的硬件不支持 1.0 以外的其他点大小。但如果我修改我的绘制代码:
glDrawArrays(GL_POINTS, 0, particles_num);
Run Code Online (Sandbox Code Playgroud)
到:
for (int i = 0; i < particles_num; i++) {
glPointSize(massBuff.get(i));
glDrawArrays(GL_POINTS, i, 1);
}
Run Code Online (Sandbox Code Playgroud)
在 massBuff 包含值为 1f - 10f …
我有一个 LWJGL 程序(LWJGL 2.9.0),有时会随机挂起。调试它的问题是鼠标总是被抓住。在 Windows 上,可以毫无问题地恢复鼠标,但在 Linux(我使用 Linux Kubuntu)上,我知道恢复鼠标的唯一方法是停止应用程序。当鼠标被抓住时遇到断点时,也会发生同样的问题。
使用netbeans调试模式我可以暂停应用程序并随时获取一些信息,但是当应用程序挂起时鼠标不再工作(没有光标)。是否可以在不停止应用程序或仅使用键盘进行调试的情况下恢复鼠标?
Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.libr
ary.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at org.lwjgl.Sys$1.run(Sys.java:73)
at java.security.AccessController.doPrivileged(Native Method)
at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
at org.lwjgl.Sys.loadLibrary(Sys.java:95)
at org.lwjgl.Sys.<clinit>(Sys.java:112)
at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
at org.lorana.client.Lorana.<init>(Lorana.java:20)
at org.lorana.client.Lorana.main(Lorana.java:31)
Run Code Online (Sandbox Code Playgroud)
在我将所有本机库链接到每个引用的库并按照http://ninjacave.com/lwjglwitheclipse的说明进行操作后,错误仍然存在
我还关注了板上关于 lwjgl unsatisfiedlinkerrors 的其他问题,但无济于事。
非常感谢您的帮助,提前致谢!
我想将我的 OpenGL 显示设置为最大化。
我可以让用户手动完成,如果我setResizeable(true)然后让玩家点击最大化按钮,正如测试人员所说,这对用户来说是一个痛苦和不必要的步骤。
我可以将显示尺寸设置为与玩家屏幕相同的尺寸,但这看起来很奇怪,而且我不是在寻找全屏模式。
显然我已经可以全屏并设置显示大小,但我目前无法找到任何实际上允许我实际最大化显示的方法。
如果你不明白全屏和最大化之间的区别(Meta Stack Overflow 讨论),那么这里是Maximized的描述,这里是Fullscreen的描述。
我正在尝试对Travis CI进行一些测试,这些测试需要服务器,这是错误的...... 不是无头的.正如你所知,我对这个领域知之甚少,我甚至不知道使用正确的术语.
测试使用LibGDX和LWJGL.它们在我的桌面(Windows 8和Ubuntu)上工作正常,但在Travis CI中出人意料地失败:
Could not initialize class org.lwjgl.Sys
at org.lwjgl.opengl.Display.<clinit>(Display.java:135)
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setVSync(LwjglGraphics.java:446)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:118)
Run Code Online (Sandbox Code Playgroud)
我可以对Travis CI做任何事情让它认为它有适当的显示吗?即使Travis CI无法做到这一点,我是否可以采用通用方法与另一个VM进行更多控制?
我正在尝试使用未弃用的 OpenGL 在 LWJGL 3 中渲染文本。我不能使用 Slick-Util,它依赖于旧版本的 LWJGL 和不推荐使用的 OpenGL。
如果我用标准 C++ OpenGL 编写,我会使用 FreeType,但我不能。那么我将如何开始创建一个可以处理文本渲染的类,并支持:
有没有人有关于这个主题的任何好的资源,最好是 Java 和 LWJGL?
感谢 LWJGL(轻量级 Java 游戏库),我可以访问大量静态 OpenGL 类。但是,有人认为我不明白为什么要使用特定版本。在LWJGL 3 wiki 中,他们说:
静态类 GL11, GL12, GL13, GL20, GL21, GL22,... 可用于某个 GL 版本的访问函数,其中 GL11 对应 OpenGL 1.1,GL20 对应 OpenGL 2.0
我知道每个类都是不同版本的 OpenGL,但我经常看到很多教程,根据他们在做什么会使用不同的类,在同一函数中在 GL11、GL13 等之间切换。为了一致性,在任何地方使用相同的类不是更安全吗?当 GL41 可用时,为什么还要继续使用 GL11?因为它是更新的版本,所以不能更快吗?