草庐IT

opengl_test

全部标签

c++ - 测试 C++ 代码 : Using test libraries

我学习C++有一段时间了,但这是我第一次接触C++项目(宠物配置解析器库)。我正在使用GoogleC++TestingFramework来测试这个。但我不知道我这样做是否正确。目前,我已经剥离了这个Google测试库的一些部分并将其放入我的项目Test/googletest目录中。它工作正常,但我想知道我是否应该这样做。我在我的项目中包含了测试框架的源代码,它将与我的代码一起发布。这让我感到不舒服。我浏览了someC++projectsonGitHub,试图看看其他人如何处理这个问题。有些有自定义框架,大多数根本不测试代码就解决了整个问题。我想知道我是否做对了,或者我怎样才能采用一种测

c++ - 我可以在 OpenGL (C++) 的缓冲区中混合数据类型吗?

我有一个GLfloats数组,在我绘制四边形时用作位置和颜色(因此每个顶点有4个float)。我也想添加为四边形着色的功能,我想我会将RGBA打包到一个GLuint中,然后将其与位置一起发送到GPU。那么,我能否以某种方式向GPU发送4个GLfloat,然后发送1个GLuint?相关代码如下:voidSpriteRenderer::Init(){vertexBufferArrayInserts=0;hasBegun=GL_FALSE;glGenBuffers(1,&vertexBuffer);glBindBuffer(GL_ARRAY_BUFFER,vertexBuffer);glBu

c++ - 改变RGBA颜色后OpenGL以16种颜色绘制

当我尝试在OpenGL中使用RGBA颜色绘制二维圆时,它使用最接近的16色调色板颜色绘制它。这是我使用的代码。//InitcanvasglMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(0,Screen.Width(),Screen.Height(),0,0,1);glMatrixMode(GL_MODELVIEW);glColorMaterial(GL_FRONT,GL_AMBIENT_AND_DIFFUSE);glEnable(GL_COLOR_MATERIAL);//BackgroundglClearColor(0.0,0.0

c++ - 将glm四元数转换为旋转矩阵并将其与opengl一起使用

所以我将我的对象的方向存储在glm::fquat中,我想用它来旋转我的模型。我该怎么做?我试过这个:glPushMatrix();glTranslatef(position.x,position.y,position.z);glMultMatrixf(glm::mat4_cast(orientation));glCallList(modelID);glPopMatrix();但是我得到了这个错误:error:cannotconvert'glm::detail::tmat4x4'to'constGLfloat*{akaconstfloat*}'forargument'1'to'voidg

c++ - 从平面方程绘制任意平面,OpenGL

我有一个由标准平面方程a*x+b*y+c*z+d=0定义的平面,我希望能够使用OpenGL绘制它。如何导出在3D空间中将其绘制为四边形所需的四个点?我的飞机类型定义为:structPlane{floatx,y,z;//planenormalfloatd;};voidDrawPlane(constPlane&p){???}编辑:因此,重新思考这个问题,我真正想要的是在3D空间中绘制一个平面的谨慎表示,而不是无限平面。根据@a.lasram提供的答案,我制作了这个实现,它就是这样做的:voidDrawPlane(constVector3¢er,constVector3&planeN

c++ - 如何通过命令行运行 Google Test?

我有一个启动并运行GoogleTest的示例项目。我有一个简单的测试类,如下所示:#includeTEST(FirstTest,TestNumberOne){EXPECT_NE(2,1);}这是在我电脑上的目录/home/dave/Desktop/sandbox/black-test/src/code/Tester.cpp我在使用Ubuntu的Eclipse中工作。测试类在Eclipse中运行良好(右键单击,以C++运行)。但是我找不到关于如何通过命令提示符运行的文档?其次,大多数为C++进行单元测试的人是将他们的测试项目与生产代码分开还是耦合(就像大多数Java项目一样)?

c++ - GCC Address Sanitizer - 将库函数列入黑名单(特别是 boost::test)

我所有的单元测试代码都基于boost::test。我刚刚尝试了GCCAddresssanitizer,它报告了boost::test的一些问题:==25309==ERROR:AddressSanitizer:heap-use-after-freeonaddress0xf5801344atpc0x8259412bp0xff9966c8sp0xff9966bcREADofsize4at0xf5801344threadT0#00x8259411inboost::unit_test::framework::run(unsignedlong,bool)../common/lib/boost/bo

c++ - 使用 SDL_Renderer 绘制 2D 内容,使用 SDL_GLContext 绘制 OpenGL 内容

我学习SDL二维编程已有一段时间了,现在我想创建一个结合使用SDL和OpenGL的程序。我是这样设置的:SDL_Init(SDL_INIT_VIDEO);window=SDL_CreateWindow("SDLandOpenGL",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,width,height,SDL_WINDOW_OPENGL);context=SDL_GL_CreateContext(window);该程序目前只是一个使用OpenGl显示的带有白线的黑色窗口。这是渲染的代码:glClearColor(0,0,0,0);glCle

c++ - OpenGL 'deprecated' 功能可能不受支持吗?

我正在使用glDrawPixels进行测试,以便将我的简单像素绘制2D游戏从WindowsAPI移植到带有GLFW的OpenGL。它运行良好,FPS超过100,而且是跨平台的。只有一件事让我有点恼火,那就是我使用了一个已弃用的功能。我现在没有看到任何问题,但这可能会成为future的问题吗?glDrawPixels会突然被移除吗?我所需要的只是winapi的CreateWindow和BitBlt的跨平台替代方案。 最佳答案 我想延长articleaboutdeprecationintheOpenGLwiki已经在评论中给出了。目前的

c++ - OpenGL 渲染限制在屏幕的左下四分之一

所以我正在用C++开发一个OpenGL项目,我遇到了一个奇怪的问题,在创建GLFWwindow并绘制到它之后,我正在绘制的区域只包含屏幕的左下四分之一.例如,如果屏幕尺寸为640x480,我在(600,440)处绘制了一个40x40的正方形,它会显示在这里,而不是像我期望的那样显示在右上角:如果我将正方形移动到不在640x480参数范围内的区域,它会被截断,如下所示:我将从下面的main.cpp中发布我的代码:#defineFRAME_CAP5000.0;#include#include#include#include"InputHandler.h"#include"Game.h"us