Changed ObjC properties to be pointers for C++ objects

--HG--
extra : convert_revision : svn%3A7752d6cf-9f14-4ad2-affc-04f1e67b81a5/trunk%4069
This commit is contained in:
kearwood
2012-08-16 20:44:33 +00:00
parent 721d25f0ed
commit 0ce4bc8b11
4 changed files with 119 additions and 113 deletions

View File

@@ -38,7 +38,11 @@
#import "KRCamera.h" #import "KRCamera.h"
#import "KRBoundingVolume.h" #import "KRBoundingVolume.h"
KRCamera::KRCamera() { KRCamera::KRCamera(KRContext &context, GLint width, GLint height) {
backingWidth = width;
backingHeight = height;
double const PI = 3.141592653589793f; double const PI = 3.141592653589793f;
double const D2R = PI * 2 / 360; double const D2R = PI * 2 / 360;
@@ -91,6 +95,8 @@ KRCamera::KRCamera() {
m_postShaderProgram = 0; m_postShaderProgram = 0;
m_iFrame = 0; m_iFrame = 0;
createBuffers(context);
} }
KRCamera::~KRCamera() { KRCamera::~KRCamera() {

View File

@@ -48,7 +48,7 @@ class KRContext;
class KRCamera { class KRCamera {
public: public:
KRCamera(); KRCamera(KRContext &context, GLint width, GLint height);
~KRCamera(); ~KRCamera();
GLint backingWidth, backingHeight; GLint backingWidth, backingHeight;

View File

@@ -44,14 +44,9 @@ typedef enum KREngineParameterType {KRENGINE_PARAMETER_INT, KRENGINE_PARAMETER_F
@interface KREngine : NSObject @interface KREngine : NSObject
{
@private
KRContext m_context; @property(nonatomic, assign) KRContext *context;
KRCamera m_camera; @property(nonatomic, assign) KRCamera *camera;
}
@property(nonatomic, readonly, assign) KRContext context;
@property(nonatomic, retain) NSString *debug_text; @property(nonatomic, retain) NSString *debug_text;
- (id)initForWidth: (GLuint)width Height: (GLuint)height; - (id)initForWidth: (GLuint)width Height: (GLuint)height;

View File

@@ -49,17 +49,16 @@ using namespace std;
@implementation KREngine @implementation KREngine
@synthesize debug_text = _debug_text; @synthesize debug_text = _debug_text;
@synthesize context = m_context;
double const PI = 3.141592653589793f; double const PI = 3.141592653589793f;
- (id)initForWidth: (GLuint)width Height: (GLuint)height - (id)initForWidth: (GLuint)width Height: (GLuint)height
{ {
_camera = NULL;
_context = NULL;
if ((self = [super init])) { if ((self = [super init])) {
_context = new KRContext();
_camera = new KRCamera(*_context, width, height);
[self loadShaders]; [self loadShaders];
m_camera.backingWidth = width;
m_camera.backingHeight = height;
m_camera.createBuffers(m_context);
} }
@@ -80,7 +79,7 @@ double const PI = 3.141592653589793f;
- (void)renderScene: (KRScene *)pScene WithViewMatrix: (KRMat4)viewMatrix - (void)renderScene: (KRScene *)pScene WithViewMatrix: (KRMat4)viewMatrix
{ {
viewMatrix.rotate(-90 * 0.0174532925199, Z_AXIS); viewMatrix.rotate(-90 * 0.0174532925199, Z_AXIS);
m_camera.renderFrame(m_context, *pScene, viewMatrix); _camera->renderFrame(*_context, *pScene, viewMatrix);
} }
@@ -91,7 +90,7 @@ double const PI = 3.141592653589793f;
for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: bundle_directory error:nil]) { for (NSString* fileName in [fileManager contentsOfDirectoryAtPath: bundle_directory error:nil]) {
if([fileName hasSuffix: @".vsh"] || [fileName hasSuffix: @".fsh"]) { if([fileName hasSuffix: @".vsh"] || [fileName hasSuffix: @".fsh"]) {
NSString* path = [NSString stringWithFormat:@"%@/%@", bundle_directory, fileName]; NSString* path = [NSString stringWithFormat:@"%@/%@", bundle_directory, fileName];
m_context.loadResource([path UTF8String]); _context->loadResource([path UTF8String]);
} }
} }
@@ -100,13 +99,19 @@ double const PI = 3.141592653589793f;
- (BOOL)loadResource:(NSString *)path - (BOOL)loadResource:(NSString *)path
{ {
m_context.loadResource([path UTF8String]); _context->loadResource([path UTF8String]);
return TRUE; return TRUE;
} }
- (void)dealloc - (void)dealloc
{ {
if(_camera) {
delete _camera; _camera = NULL;
}
if(_context) {
delete _context; _context = NULL;
}
[super dealloc]; [super dealloc];
} }
@@ -230,37 +235,37 @@ double const PI = 3.141592653589793f;
-(double)getParameterValueWithIndex: (int)i -(double)getParameterValueWithIndex: (int)i
{ {
double values[31] = { double values[31] = {
m_camera.perspective_fov, _camera->perspective_fov,
(double)m_camera.m_cShadowBuffers, (double)_camera->m_cShadowBuffers,
m_camera.bEnablePerPixel ? 1.0f : 0.0f, _camera->bEnablePerPixel ? 1.0f : 0.0f,
m_camera.bEnableDiffuseMap ? 1.0f : 0.0f, _camera->bEnableDiffuseMap ? 1.0f : 0.0f,
m_camera.bEnableNormalMap ? 1.0f : 0.0f, _camera->bEnableNormalMap ? 1.0f : 0.0f,
m_camera.bEnableSpecMap ? 1.0f : 0.0f, _camera->bEnableSpecMap ? 1.0f : 0.0f,
m_camera.bEnableReflectionMap ? 1.0f : 0.0f, _camera->bEnableReflectionMap ? 1.0f : 0.0f,
m_camera.bEnableLightMap ? 1.0f : 0.0f, _camera->bEnableLightMap ? 1.0f : 0.0f,
m_camera.dAmbientR, _camera->dAmbientR,
m_camera.dAmbientG, _camera->dAmbientG,
m_camera.dAmbientB, _camera->dAmbientB,
m_camera.dSunR, _camera->dSunR,
m_camera.dSunG, _camera->dSunG,
m_camera.dSunB, _camera->dSunB,
m_camera.dof_quality, _camera->dof_quality,
m_camera.dof_depth, _camera->dof_depth,
m_camera.dof_falloff, _camera->dof_falloff,
m_camera.bEnableFlash ? 1.0f : 0.0f, _camera->bEnableFlash ? 1.0f : 0.0f,
m_camera.flash_intensity, _camera->flash_intensity,
m_camera.flash_depth, _camera->flash_depth,
m_camera.flash_falloff, _camera->flash_falloff,
m_camera.bEnableVignette ? 1.0f : 0.0f, _camera->bEnableVignette ? 1.0f : 0.0f,
m_camera.vignette_radius, _camera->vignette_radius,
m_camera.vignette_falloff, _camera->vignette_falloff,
m_camera.bShowShadowBuffer ? 1.0f : 0.0f, _camera->bShowShadowBuffer ? 1.0f : 0.0f,
m_camera.bDebugPSSM ? 1.0f : 0.0f, _camera->bDebugPSSM ? 1.0f : 0.0f,
m_camera.bEnableAmbient ? 1.0f : 0.0f, _camera->bEnableAmbient ? 1.0f : 0.0f,
m_camera.bEnableDiffuse ? 1.0f : 0.0f, _camera->bEnableDiffuse ? 1.0f : 0.0f,
m_camera.bEnableSpecular ? 1.0f : 0.0f, _camera->bEnableSpecular ? 1.0f : 0.0f,
m_camera.bDebugSuperShiny ? 1.0f : 0.0f, _camera->bDebugSuperShiny ? 1.0f : 0.0f,
m_camera.bEnableDeferredLighting ? 1.0f : 0.0f _camera->bEnableDeferredLighting ? 1.0f : 0.0f
}; };
return values[i]; return values[i];
} }
@@ -270,140 +275,140 @@ double const PI = 3.141592653589793f;
NSLog(@"Set Parameter: (%s, %f)", [[self getParameterNameWithIndex: i] UTF8String], v); NSLog(@"Set Parameter: (%s, %f)", [[self getParameterNameWithIndex: i] UTF8String], v);
switch(i) { switch(i) {
case 0: // FOV case 0: // FOV
m_camera.perspective_fov = v; _camera->perspective_fov = v;
break; break;
case 1: // Shadow Quality case 1: // Shadow Quality
m_camera.m_cShadowBuffers = (int)v; _camera->m_cShadowBuffers = (int)v;
break; break;
case 2: case 2:
m_camera.bEnablePerPixel = bNewBoolVal; _camera->bEnablePerPixel = bNewBoolVal;
break; break;
case 3: case 3:
m_camera.bEnableDiffuseMap = bNewBoolVal; _camera->bEnableDiffuseMap = bNewBoolVal;
break; break;
case 4: case 4:
m_camera.bEnableNormalMap = bNewBoolVal; _camera->bEnableNormalMap = bNewBoolVal;
break; break;
case 5: case 5:
m_camera.bEnableSpecMap = bNewBoolVal; _camera->bEnableSpecMap = bNewBoolVal;
break; break;
case 6: case 6:
m_camera.bEnableReflectionMap = bNewBoolVal; _camera->bEnableReflectionMap = bNewBoolVal;
break; break;
case 7: case 7:
m_camera.bEnableLightMap = bNewBoolVal; _camera->bEnableLightMap = bNewBoolVal;
break; break;
case 8: case 8:
m_camera.dAmbientR = v; _camera->dAmbientR = v;
break; break;
case 9: case 9:
m_camera.dAmbientG = v; _camera->dAmbientG = v;
break; break;
case 10: case 10:
m_camera.dAmbientB = v; _camera->dAmbientB = v;
break; break;
case 11: case 11:
m_camera.dSunR = v; _camera->dSunR = v;
break; break;
case 12: case 12:
m_camera.dSunG = v; _camera->dSunG = v;
break; break;
case 13: case 13:
m_camera.dSunB = v; _camera->dSunB = v;
break; break;
case 14: case 14:
if(m_camera.dof_quality != (int)v) { if(_camera->dof_quality != (int)v) {
m_camera.dof_quality = (int)v; _camera->dof_quality = (int)v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 15: case 15:
if(m_camera.dof_depth != v) { if(_camera->dof_depth != v) {
m_camera.dof_depth = v; _camera->dof_depth = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 16: case 16:
if(m_camera.dof_falloff != v) { if(_camera->dof_falloff != v) {
m_camera.dof_falloff = v; _camera->dof_falloff = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 17: case 17:
if(m_camera.bEnableFlash != bNewBoolVal) { if(_camera->bEnableFlash != bNewBoolVal) {
m_camera.bEnableFlash = bNewBoolVal; _camera->bEnableFlash = bNewBoolVal;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 18: case 18:
if(m_camera.flash_intensity != v) { if(_camera->flash_intensity != v) {
m_camera.flash_intensity = v; _camera->flash_intensity = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 19: case 19:
if(m_camera.flash_depth != v) { if(_camera->flash_depth != v) {
m_camera.flash_depth = v; _camera->flash_depth = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 20: case 20:
if(m_camera.flash_falloff != v) { if(_camera->flash_falloff != v) {
m_camera.flash_falloff = v; _camera->flash_falloff = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 21: case 21:
if(m_camera.bEnableVignette != bNewBoolVal) { if(_camera->bEnableVignette != bNewBoolVal) {
m_camera.bEnableVignette = bNewBoolVal; _camera->bEnableVignette = bNewBoolVal;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 22: case 22:
if(m_camera.vignette_radius != v) { if(_camera->vignette_radius != v) {
m_camera.vignette_radius = v; _camera->vignette_radius = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 23: case 23:
if(m_camera.vignette_falloff != v) { if(_camera->vignette_falloff != v) {
m_camera.vignette_falloff = v; _camera->vignette_falloff = v;
m_camera.invalidatePostShader(); _camera->invalidatePostShader();
} }
break; break;
case 24: case 24:
if(m_camera.bShowShadowBuffer != bNewBoolVal) { if(_camera->bShowShadowBuffer != bNewBoolVal) {
m_camera.bShowShadowBuffer = bNewBoolVal; _camera->bShowShadowBuffer = bNewBoolVal;
} }
break; break;
case 25: case 25:
if(m_camera.bDebugPSSM != bNewBoolVal) { if(_camera->bDebugPSSM != bNewBoolVal) {
m_camera.bDebugPSSM = bNewBoolVal; _camera->bDebugPSSM = bNewBoolVal;
} }
break; break;
case 26: case 26:
if(m_camera.bEnableAmbient != bNewBoolVal) { if(_camera->bEnableAmbient != bNewBoolVal) {
m_camera.bEnableAmbient = bNewBoolVal; _camera->bEnableAmbient = bNewBoolVal;
} }
break; break;
case 27: case 27:
if(m_camera.bEnableDiffuse != bNewBoolVal) { if(_camera->bEnableDiffuse != bNewBoolVal) {
m_camera.bEnableDiffuse = bNewBoolVal; _camera->bEnableDiffuse = bNewBoolVal;
} }
break; break;
case 28: case 28:
if(m_camera.bEnableSpecular != bNewBoolVal) { if(_camera->bEnableSpecular != bNewBoolVal) {
m_camera.bEnableSpecular = bNewBoolVal; _camera->bEnableSpecular = bNewBoolVal;
} }
break; break;
case 29: case 29:
if(m_camera.bDebugSuperShiny != bNewBoolVal) { if(_camera->bDebugSuperShiny != bNewBoolVal) {
m_camera.bDebugSuperShiny = bNewBoolVal; _camera->bDebugSuperShiny = bNewBoolVal;
} }
break; break;
case 30: case 30:
if(m_camera.bEnableDeferredLighting != bNewBoolVal) { if(_camera->bEnableDeferredLighting != bNewBoolVal) {
m_camera.bEnableDeferredLighting = bNewBoolVal; _camera->bEnableDeferredLighting = bNewBoolVal;
} }
} }
} }
@@ -432,16 +437,16 @@ double const PI = 3.141592653589793f;
- (void)setNearZ: (double)dNearZ - (void)setNearZ: (double)dNearZ
{ {
if(m_camera.perspective_nearz != dNearZ) { if(_camera->perspective_nearz != dNearZ) {
m_camera.perspective_nearz = dNearZ; _camera->perspective_nearz = dNearZ;
m_camera.invalidateShadowBuffers(); _camera->invalidateShadowBuffers();
} }
} }
- (void)setFarZ: (double)dFarZ - (void)setFarZ: (double)dFarZ
{ {
if(m_camera.perspective_farz != dFarZ) { if(_camera->perspective_farz != dFarZ) {
m_camera.perspective_farz = dFarZ; _camera->perspective_farz = dFarZ;
m_camera.invalidateShadowBuffers(); _camera->invalidateShadowBuffers();
} }
} }
@@ -451,7 +456,7 @@ double const PI = 3.141592653589793f;
_debug_text = value; _debug_text = value;
[_debug_text retain]; [_debug_text retain];
m_camera.m_debug_text = value.UTF8String; _camera->m_debug_text = value.UTF8String;
} }
@end @end