我開始瞭解OpenGL發展,特別是使用Mac OS X和可可和/或CGL API的,所以我會使用這些類的例子,但我的問題更多的是設計,而不是特定的實現。這裏的情況:使用OpenGL創建MVC範例的最佳方法?
我有一個「場景」的對象,可以包含或引用的數據來表現自己,並回應了「渲染」繪製消息本身,而無需任何轉換。
我有一個NSView
或NSOpenGLView
對象,該對象創建openGLContext和pixelFormats,調整視圖大小,並根據傳遞給它的任何轉換更新ModelView和Projection。該視圖對象還包含一個相機struct
,它是openGL轉換的基礎。
我有一個控制器對象,它是一個對象NSResponder
,並響應於用戶輸入。
我不知道這是不是最好的安排;在這種情況下,'模型'應該是場景,我認爲控制器應該在模型和視圖之間調解動作,但是如果視圖每次要繪製視圖時都發送[[controller scene] render]
,這似乎很奇怪。
而且我不知道如果「相機」最好的地方是在視圖中。我是否應該擁有場景對象還包括照相機,並讓它響應來自當前傳遞給視圖的控制器的UI輸入?
或者這是錯誤的做法完全?我正在試圖將一些東西轉化爲MVC,但這並不意味着它。我很好奇人們在OpenGL中使用哪種設計模式。