Tag: sdl 2

JNI调用非静态函数段错误

我正在为Android的SDL库做一些工作,但我有一点障碍。 此函数在Java中定义: /** * This method is called by SDL using JNI. * @return an array which may be empty but is never null. */ public static int[] inputGetInputDeviceIds(int sources) { int[] ids = InputDevice.getDeviceIds(); int[] filtered = new int[ids.length]; int used = 0; for (int i = 0; i < ids.length; ++i) { InputDevice […]

康威的生命游戏:更改邻居计数function后,单元格更改计算错误

想知道是否有人可以帮助我解决这个小问题。 我写了一个函数来计算康威生命游戏中一个细胞的活着的邻居: int countLivingNeighbours(int a[][GRID_WIDTH], int x, int y){ int count = 0, cx, cy; for(cy = y – 1; cy <= y + 1; cy++){ for(cx = x – 1; cx <= x + 1; cx++){ if(a[cy][cx] == ALIVE){ count++; } } } // subtract 1 so it's not counting it's own cell count–; […]

使用openGL ES 2.0和其他线条绘制function的字体渲染(Freetype)不起作用

此主题与https://stackoverflow.com/questions/50955558/render-fonts-with-sdl2-opengl-es-2-0-glsl-1-0-freetype相关 我有一个组合字体渲染和使用此function的问题,如下所示: // Create VBO (Vertex Buffer Object) based on the vertices provided, render the vertices on the // background buffer and eventually swap buffers to update the display. // Return index of VBO buffer GLuint drawVertices(SDL_Window *window, Vertex *vertices, GLsizei numVertices, int mode){ // Number of vertices elements must be provided as a param […]

SDL2 OSX上的SDL_GetWindowSurface和/或SDL_CreateRenderer上的渲染器无效

所以我一直在玩SDL2以确定它是否符合我的需求。 我正在按照介绍性示例(主要来自lazyfoo)进行简单的测试。 #include #include const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; int main(int argc, char const *argv[]) { /* The window handle */ SDL_Window* window = NULL; /* The surface contained in the window */ SDL_Surface* screen_surface = NULL; /* Init SDL */ if(SDL_Init(SDL_INIT_VIDEO) format, 0x50, 0x50, 0x50)); // /* Update the […]

获取SDL 2应用程序的窗口句柄

我想获得SDL2窗口的句柄,以便与WinApi一起使用。 我使用以下代码检索该句柄: /* All the SDL initalisation… */ SDL_Window* window = SDL_CreateWindow(“My Window”, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, RESX, RESY, SDL_WINDOW_SHOWN); SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); if (window == NULL || renderer == NULL) { MessageBox(NULL, L”SDL initialisation error”, NULL, MB_OK); exit(-1); } SDL_SysWMinfo wmInfo; SDL_GetWindowWMInfo(window, &wmInfo); HWND hwnd = wmInfo.info.win.window; 但此时, hwnd地址是0xcccccccc (未使用)。 我做错什么了吗?

带有矩形数组的SDL_RenderCopy

SDL_RenderCopy只接受单个输入矩形和单个输出矩形。 但是如果我有很多想要填充的图像,我对opengl的了解告诉我,一次性绘制所有图像的批量操作比每个精灵的一次绘制调用要快得多。 SDL_FillRects已经存在count参数。 但我找不到任何适合绘制很多精灵的东西。 SDL2中是否存在一些我仍然缺少的function,因为我怀疑这种优化是否可以自动完成。

SDL物理密钥代码和SDL虚拟密钥代码之间有什么区别?

struct SDL_Keysym具有SDL_Scancode和SDL_Keycode成员。 它们之间有什么区别? 文档并没有真正为我清除它。 我试过两个,他们似乎做同样的事情。

CC / GCC但不是G ++的奇数分段错误(C / SDL2 / Linux)

发布的代码直接从流行的SDL2教程的示例中复制,以确保不是我犯了一些愚蠢的错误。 我对示例所做的只是更改有问题的图像文件的路径,我将类型bool更改为int,将false更改为0并将true更改为1.据我所知,没有任何特定于C ++的内容。 无论我做什么,一切似乎都有效,但是当用CC / GCC进行编译时(我认为这真的是同样的交易)我最终得到了一个分段错误,我怀疑是close(),我一直无法确定。 用G ++编译可以防止分段错误。 解决方案当然很简单,只需使用G ++,但我非常想知道问题所在。 main.c中: //Using SDL and standard IO #include #include //Screen dimension constants const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; //Starts up SDL and creates window int init(); //Loads media int loadMedia(); //Frees media and shuts down SDL void close(); //The window we’ll be […]

SDL2:LNK1561:必须定义入口点

我想编译这段代码: #include int main(int argc, char* argv[]) { return 0; } 但它无法链接: Error 1 error LNK1561: entry point must be defined 这个库里有一些奇怪的代码: http : //hg.libsdl.org/SDL/file/75726efbf679/include/SDL_main.h #define main SDL_main 我SDL2.lib;SDL2main.lib添加到Project Settings => Linker => Input。 我该怎么做才能运行这个项目? VS 2012 SP3,空C ++项目。

如何在SDL 2.0中绘制像素?

如何在SDL2.0中使用像素绘制? 我正在尝试熟悉C ++,但如果没有漂亮的图片,这很难做到,所以我试图让一个非常基本的图形显示器运行。 我真正想做的就是给我一个窗口,让我在其上绘制rgbα像素,并访问有关这些像素的信息。 可能还有其他我想要的东西,我不知道,但这就是我现在所有的东西。 我对此的研究使我尝试使用SDL,当前版本为2.0。 几乎所有的图形体验都来自在上使用JavaScript。 大多数其他位来自我的计算器,它具有非常棒的Pxl-On()命令,非常简单。 我正在使用MinGW作为我的C ++,如果重要的话。 此外,如果有什么比SDL2.0更好的我需要的东西,建议欢迎。 **“更好”意味着“包含我需要的function,但总function少于SDL2.0,和/或具有比SDL2.0更直观/更复杂的*** API。” ***减少完成相同任务的代码行。