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:
@@ -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() {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user