我疯了,因为我无法在屏幕上显示一组简单的三角形.
我正在使用OpenGL3(没有弃用的固定管道)使用D编程语言的废弃绑定.
你能发现以下程序中的错误吗?它编译得很好,不会抛出任何OpenGL/GLSL错误.它只显示我设置的清晰颜色的空白屏幕.
import std.string;
import std.conv;
import derelict.opengl3.gl3;
import derelict.sdl2.sdl2;
immutable string minimalVertexShader = `
#version 120
attribute vec2 position;
void main(void)
{
gl_Position = vec4(position, 0, 1);
}
`;
immutable string minimalFragmentShader = `
#version 120
void main(void)
{
gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
`;
void main() {
DerelictSDL2.load();
DerelictGL3.load();
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
throw new Exception("Failed to initialize SDL: " ~ to!string(SDL_GetError()));
}
// Set OpenGL version
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
// Set OpenGL …Run Code Online (Sandbox Code Playgroud) 我有一个函数void foo(...)和一个函数void bar(...),我想从foo调用bar,以一种bar接收相同变量参数列表的方式foo.
这可能在D?
谢谢!
在我过去的所有iOS游戏中,我将游戏设置为一个简单的基于视图的应用程序,其中包含一个视图控制器,.h文件和.m文件.我设置了一个NSTimer每秒30,40或60帧的集合,称为主运行循环.后来进入开发阶段,我将图形更新(更高的FPS)和游戏计算(更低的FPS)分开以减少滞后.我从未理解如何在游戏中实现多线程/并发,因为图形和计算彼此依赖...
鉴于我从未有机会阅读"真实"游戏的源代码,我是以合理的方式设置它,还是我对游戏的主框架采取了完全错误的方法并运行循环?
我问这个是因为我注意到我的应用程序与App Store上的其他应用程序相比有很多延迟(例如,我的应用程序在iPhone 3G上可怕地落后,但是Doodle Jump,Fruit Ninja,Cut the Rope等运行相对顺利).
我在具有package 保护属性的类中有一个成员函数,我想在子类中,在同一个包中,不同的模块中覆盖它.dmd编译器大声说我无法覆盖非虚函数.如果我发挥功能public,它实际上是有效的.
为什么包功能不是虚拟的?
示例代码:
module test.A;
class A {
package void doSomething() {}
}
module test.B;
import test.A;
class B : A {
package override void doSomething() {} // ERROR! overriding a non-virtual function
}
Run Code Online (Sandbox Code Playgroud)