我正在学习OpenGL,但我对如何使用变量的方式有些困惑。在用C++编写的许多示例代码中,变量被用作全局变量。但我认为我们不希望在程序中使用太多的全局变量。所以我想知道如何在不违反封装的情况下使用变量?或者我应该使用单例记录所有变量,例如模型?我应该如何在OpenGL中使用变量而不违反封装
1
A
回答
1
在用C++编写大量的实例代码,变量作为全局变量
这听起来像你正在阅读使用GLUT框架编写的例子。变量是全局性的,GLUTs设计是一个简约框架的直接结果,这个框架适用于简单的测试和techdemos。您不应该将GLUT用于严重的应用程序。
GLUT不是OpenGL的一部分。这是一个第三方库,当涉及到OpenGL时,不需要以任何方式使用它。实际上,强烈建议您不要使用它。
OpenGL本身可以从封装代码中使用就好。查找使用Qt框架的OpenGL示例。恕我直言,Qt实现OpenGL小部件和上下文封装的方式并不理想(最近我遇到了严重的限制),但如果您是初学者,您几乎不会注意到这一点。
+0
我明白了。这些天我正在阅读使用GLUT的示例,并且我曾认为GLUT是库OpenGL的一部分。在大多数例子中,变量是全局变量,而其他变量是硬编码的。非常感谢您的帮助。我将尝试使用opengl阅读一些示例。 – Timothy 2013-03-06 02:01:53
相关问题
- 1. 如何违反封装属性?
- 2. 有没有可能在ABAP中违反反射封装?
- 3. 函数参数是否违反封装?
- 4. 模板模式违反封装?
- 5. 这两个类是否违反封装?
- 6. 我不应该在getter和setter中使用变量变量吗?
- 7. VB.NET〜我如何封装我的代码以反复使用?
- 8. 如何在Django中使用多个样式表,样式表由GET变量确定,而不违反DRY?
- 9. 的语言使用“@”封装变量
- 10. EF应该封装在基类中吗?
- 11. 反应 - 不变违规异常
- 12. 不变违规:反应错误#130
- 13. 为什么在启用时不应该违反外键?
- 14. 如何在不违反封装的情况下合法访问和修改私有字段矢量和地图?
- 15. 在变量中封装内容
- 16. 在bash中封装变量字符串
- 17. 我应该使用HTML注释来封装JavaScript代码块吗?
- 18. 我应该使用wp_enqueue_script()来封装外部脚本吗
- 19. 我应该如何封装这个多维枚举?
- 20. 我应该在变量中使用弱自我吗?
- 21. PHP封装全局变量
- 22. 我应该在DAO中传入还是封装一个连接?
- 23. 我应该在匿名JavaScript函数中封装功能块吗?
- 24. 我应该在分布式锁中封装redis incr吗?
- 25. 什么时候应该使用会话变量而不是cookie?
- 26. 如何在JavaScript中使用链而不应用反模式?
- 27. 如何在NModel中封装状态变量?
- 28. 严格遵守单一责任原则是否违反封装?
- 29. 传递参数给构造函数违反封装?
- 30. 客户端锁定是否违反同步策略的封装?
示例代码的意思就是:例子。除非它们是良好编程实践的例子,否则示例通常不会花费时间来展示良好的编程实践,特别是如果这样做只会使代码复杂化。所以,请举例说明它们的功能:显示功能如何工作。这是您作为程序员的工作,以了解该功能如何工作,然后将其整合到您正在编写的任何应用程序中,并以任何您认为是良好实践的方式提供服务。 – 2013-03-05 03:21:41
谢谢你的建议。 @NicolBolas – Timothy 2013-03-05 07:39:37