这是SDL_CreateTextureFromSurface函数的语法:
SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer* renderer, SDL_Surface* surface)
Run Code Online (Sandbox Code Playgroud)
但是,我很困惑为什么我们需要传递一个渲染器*?我认为只有在绘制纹理时才需要渲染器*?
我读了一个关于多态的例子,它看起来像波纹管,其中show()是一个虚函数:
int main()
{
Derived dv1;
Derived dv2;
Base* ptr;
ptr = &dv1;
ptr->show();
ptr = &dv2;
ptr->show();
}
Run Code Online (Sandbox Code Playgroud)
书中说,在这种情况下,编译器将使用late binding技术.我确实理解后期绑定和早期绑定之间的区别.但是,在这个例子中,我们(也可能是编译器)可以看到应该调用哪个函数,因为ptr指向的对象没有变化.那么为什么不在这种情况下提前绑定,因为后期绑定会导致一些开销?
我想将此库添加到我的项目中。但是,它不附带预编译文件。它要求我自己构建库cmake,这是我不熟悉的。它的依赖项之一是 SDL2。所以我下载了 sdl2 开发库文件夹。在 cmake 中,我单击“配置”并选择生成器。处理几秒钟后,弹出一个窗口显示错误:Error in configuration process project files may be invalid
这就是日志屏幕显示的内容:
C 编译器标识为 MSVC 18.0.40629.0
CXX 编译器标识为 MSVC 18.0.40629.0
使用以下命令检查 C 编译器是否正常工作: Visual Studio 12 2013
使用以下命令检查 C 编译器是否正常工作: Visual Studio 12 2013 -- 有效
检测 C 编译器 ABI 信息
检测 C编译器 ABI 信息 - 完成
使用以下命令检查 CXX 编译器的工作状态: Visual Studio 12 2013
使用以下命令
检查 CXX 编译器的工作状态: Visual Studio 12 2013 -- 有效 检测 CXX 编译器 ABI 信息
检测 CXX 编译器 …
如题,在处理I/O文件方面SDL_RWops有什么优势std::fstream吗?我可以std::fstream改用因为我更熟悉它吗?
是什么意思(int*) &i?
char i;
int* p = (int*) &i;
...
*p = 1234567892;
...
Run Code Online (Sandbox Code Playgroud)
如果是的话* &i,我会理解.但在这种情况下,这是一个" int".