Skip to content
Open
5 changes: 2 additions & 3 deletions Core/Tools/W3DView/AssetInfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,8 @@ AssetInfoClass::Initialize (void)
if (m_AssetType != TypeMaterial) {

// Assume we are wrapping an instance as apposed to an asset 'name'.
RenderObjClass *prender_obj = m_pRenderObj;
if (prender_obj)
prender_obj->Add_Ref();
RenderObjClass *prender_obj = m_pRenderObj.Peek();
if (prender_obj) prender_obj->Add_Ref();

// If we are wrapping an asset name, then create an instance of it.
if (prender_obj == NULL) {
Expand Down
33 changes: 16 additions & 17 deletions Core/Tools/W3DView/AssetInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
#pragma once

#include "rendobj.h"
#include "Utils.h"
#include "ref_ptr.h"
#include "AssetTypes.h"


Expand All @@ -58,16 +58,15 @@ class AssetInfoClass
//
AssetInfoClass (void)
: m_AssetType (TypeUnknown),
m_dwUserData (0L),
m_pRenderObj (NULL) { Initialize (); }
m_dwUserData (0L) { Initialize (); }

AssetInfoClass (LPCTSTR passet_name, ASSET_TYPE type, RenderObjClass *prender_obj = NULL, DWORD user_data = 0L)
: m_Name (passet_name),
m_AssetType (type),
m_dwUserData (user_data),
m_pRenderObj (NULL) { REF_PTR_SET (m_pRenderObj, prender_obj); Initialize (); }
AssetInfoClass (LPCTSTR passet_name, ASSET_TYPE type, RenderObjClass *prender_obj = NULL, DWORD user_data = 0L)
: m_Name (passet_name),
m_AssetType (type),
m_dwUserData (user_data),
m_pRenderObj (RefCountPtr<RenderObjClass>::Create_AddRef(prender_obj)) { Initialize (); }

virtual ~AssetInfoClass (void) { REF_PTR_RELEASE (m_pRenderObj); }
virtual ~AssetInfoClass (void) {}

//////////////////////////////////////////////////////////////
//
Expand All @@ -81,16 +80,16 @@ class AssetInfoClass
const CString & Get_Hierarchy_Name (void) const { return m_HierarchyName; }
const CString & Get_Original_Name (void) const { return m_OriginalName; }
ASSET_TYPE Get_Type (void) const { return m_AssetType; }
DWORD Get_User_Number (void) const { return m_dwUserData; }
const CString & Get_User_String (void) const { return m_UserString; }
RenderObjClass * Get_Render_Obj (void) const { if (m_pRenderObj) m_pRenderObj->Add_Ref(); return m_pRenderObj; }
RenderObjClass * Peek_Render_Obj (void) const { return m_pRenderObj; }
DWORD Get_User_Number (void) const { return m_dwUserData; }
const CString & Get_User_String (void) const { return m_UserString; }
RenderObjClass * Get_Render_Obj (void) const { RenderObjClass *ptr = m_pRenderObj.Peek(); if (ptr) ptr->Add_Ref(); return ptr; }
RenderObjClass * Peek_Render_Obj (void) const { return m_pRenderObj.Peek(); }
void Set_Name (LPCTSTR pname) { m_Name = pname; }
void Set_Hierarchy_Name (LPCTSTR pname) { m_HierarchyName = pname; }
void Set_Type (ASSET_TYPE type) { m_AssetType = type; }
void Set_User_Number (DWORD user_data) { m_dwUserData = user_data; }
void Set_User_String (LPCTSTR string) { m_UserString = string; }
void Set_Render_Obj (RenderObjClass *pobj) { REF_PTR_SET (m_pRenderObj, pobj); }
void Set_User_Number (DWORD user_data) { m_dwUserData = user_data; }
void Set_User_String (LPCTSTR string) { m_UserString = string; }
void Set_Render_Obj (RenderObjClass *pobj) { m_pRenderObj = RefCountPtr<RenderObjClass>::Create_AddRef(pobj); }

//
// Information methods
Expand Down Expand Up @@ -118,5 +117,5 @@ class AssetInfoClass
CString m_OriginalName;
ASSET_TYPE m_AssetType;
DWORD m_dwUserData;
RenderObjClass * m_pRenderObj;
RefCountPtr<RenderObjClass> m_pRenderObj;
};
12 changes: 6 additions & 6 deletions Core/Tools/W3DView/EmitterInstanceList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include "StdAfx.h"
#include "EmitterInstanceList.h"
#include "refcount.h"
#include "Utils.h"

/////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -90,12 +91,11 @@ EmitterInstanceListClass::Add_Emitter (ParticleEmitterClass *emitter)
}
}

//
// Add this emitter to the list and put a hold on its reference
//
if (emitter)
emitter->Add_Ref();
m_List.Add (emitter);
//
// Add this emitter to the list and put a hold on its reference
//
if (emitter) emitter->Add_Ref();
m_List.Add (emitter);
}

return ;
Expand Down
16 changes: 6 additions & 10 deletions Core/Tools/W3DView/GraphicView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ IMPLEMENT_DYNCREATE(CGraphicView, CView)
////////////////////////////////////////////////////////////////////////////
CGraphicView::CGraphicView (void)
: m_bInitialized (FALSE),
m_pCamera (NULL),
m_TimerID (0),
m_bMouseDown (FALSE),
m_bRMouseDown (FALSE),
Expand All @@ -83,7 +82,6 @@ CGraphicView::CGraphicView (void)
m_objectRotation (NoRotation),
m_LightRotation (NoRotation),
m_bLightMeshInScene (false),
m_pLightMesh (NULL),
m_ParticleCountUpdate (0),
m_CameraBonePosX (false),
m_UpdateCounter (0),
Expand Down Expand Up @@ -216,7 +214,7 @@ CGraphicView::InitializeGraphicView (void)
if (bReturn && (m_pCamera == NULL))
{
// Instantiate a new camera class
m_pCamera = new CameraClass ();
m_pCamera = RefCountPtr<CameraClass>::Create_NoAddRef(new CameraClass ());
bReturn = (m_pCamera != NULL);

// Were we successful in creating a camera?
Expand All @@ -234,7 +232,7 @@ CGraphicView::InitializeGraphicView (void)
//
// Attach the 'listener' to the camera
//
WWAudioClass::Get_Instance ()->Get_Sound_Scene ()->Attach_Listener_To_Obj (m_pCamera);
WWAudioClass::Get_Instance ()->Get_Sound_Scene ()->Attach_Listener_To_Obj (m_pCamera.Peek());
}

Reset_FOV ();
Expand All @@ -244,7 +242,7 @@ CGraphicView::InitializeGraphicView (void)
ResourceFileClass light_mesh_file (NULL, "Light.w3d");
WW3DAssetManager::Get_Instance()->Load_3D_Assets (light_mesh_file);

m_pLightMesh = WW3DAssetManager::Get_Instance()->Create_Render_Obj ("LIGHT");
m_pLightMesh = RefCountPtr<RenderObjClass>::Create_NoAddRef(WW3DAssetManager::Get_Instance()->Create_Render_Obj ("LIGHT"));
ASSERT (m_pLightMesh != NULL);
m_bLightMeshInScene = false;
}
Expand Down Expand Up @@ -329,8 +327,6 @@ CGraphicView::OnDestroy (void)
//
// Free the camera object
//
REF_PTR_RELEASE (m_pCamera);
REF_PTR_RELEASE (m_pLightMesh);

// Is there an update thread running?
if (m_TimerID == 0) {
Expand Down Expand Up @@ -533,7 +529,7 @@ CGraphicView::RepaintView
// Wait for all previous rendering to complete before starting benchmark.
DWORD profile_time = ::Get_CPU_Clock (pt_high);

WW3D::Render (doc->GetScene (), m_pCamera, FALSE, FALSE);
WW3D::Render (doc->GetScene (), m_pCamera.Peek(), FALSE, FALSE);

// Wait for all rendering to complete before stopping benchmark.
DWORD milliseconds = (::Get_CPU_Clock (pt_high) - profile_time) / 1000;
Expand All @@ -544,7 +540,7 @@ CGraphicView::RepaintView
WW3D::Render (doc->GetCursorScene (), doc->Get2DCamera (), FALSE, FALSE);

// Render the dazzles
doc->Render_Dazzles(m_pCamera);
doc->Render_Dazzles(m_pCamera.Peek());

// Finish out the rendering process
WW3D::End_Render ();
Expand Down Expand Up @@ -603,7 +599,7 @@ CGraphicView::UpdateDisplay (void)

// Render the current view inside the frame
WW3D::Begin_Render (TRUE, TRUE, Vector3 (0.2,0.4,0.6));
WW3D::Render (doc->GetScene (), m_pCamera, FALSE, FALSE);
WW3D::Render (doc->GetScene (), m_pCamera.Peek(), FALSE, FALSE);
WW3D::End_Render ();
} */

Expand Down
9 changes: 5 additions & 4 deletions Core/Tools/W3DView/GraphicView.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class ParticleEmitterClass;
// CGraphicView view

#include "camera.h"
#include "ref_ptr.h"

class CGraphicView : public CView
{
Expand Down Expand Up @@ -170,7 +171,7 @@ class CGraphicView : public CView
void SetAllowedCameraRotation (CAMERA_ROTATION cameraRotation);
CAMERA_ROTATION GetAllowedCameraRotation () const { return m_allowedCameraRotation; }
void SetCameraPos (CAMERA_POS cameraPos);
class CameraClass *GetCamera (void) const { return m_pCamera; }
class CameraClass *GetCamera (void) const { return m_pCamera.Peek(); }

float Get_Camera_Distance (void) const { return m_CameraDistance; }
void Set_Camera_Distance (float dist);
Expand Down Expand Up @@ -200,7 +201,7 @@ class CGraphicView : public CView
//
// Misc
//
RenderObjClass * Get_Light_Mesh (void) const { return m_pLightMesh; }
RenderObjClass * Get_Light_Mesh (void) const { return m_pLightMesh.Peek(); }
Vector3 & Get_Object_Center (void) { return m_ObjectCenter; }

//
Expand All @@ -227,8 +228,8 @@ class CGraphicView : public CView
BOOL m_bInitialized;
BOOL m_bActive;
UINT m_TimerID;
CameraClass * m_pCamera;
RenderObjClass * m_pLightMesh;
RefCountPtr<CameraClass> m_pCamera;
RefCountPtr<RenderObjClass> m_pLightMesh;
bool m_bLightMeshInScene;
Vector3 m_ObjectCenter;
SphereClass m_ViewedSphere;
Expand Down
4 changes: 1 addition & 3 deletions Core/Tools/W3DView/PlaySoundDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@ static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
PlaySoundDialogClass::PlaySoundDialogClass(LPCTSTR filename, CWnd* pParent /*=NULL*/)
: Filename (filename),
SoundObj (NULL),
CDialog(PlaySoundDialogClass::IDD, pParent)
{
//{{AFX_DATA_INIT(PlaySoundDialogClass)
Expand Down Expand Up @@ -100,7 +99,6 @@ void
PlaySoundDialogClass::OnCancel (void)
{
SoundObj->Stop ();
REF_PTR_RELEASE (SoundObj);

CDialog::OnCancel ();
return ;
Expand All @@ -125,7 +123,7 @@ PlaySoundDialogClass::OnInitDialog (void)
//
// Create the sound effect so we can play it
//
SoundObj = WWAudioClass::Get_Instance ()->Create_Sound_Effect (Filename);
SoundObj = RefCountPtr<AudibleSoundClass>::Create_NoAddRef(WWAudioClass::Get_Instance ()->Create_Sound_Effect (Filename));
if (SoundObj == NULL) {
CString message;
message.Format ("Cannot find sound file: %s!", (LPCTSTR)Filename, MB_OK);
Expand Down
3 changes: 2 additions & 1 deletion Core/Tools/W3DView/PlaySoundDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@

#include "resource.h"
#include "WWAudio.h"
#include "ref_ptr.h"


/////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -61,7 +62,7 @@ class PlaySoundDialogClass : public CDialog

private:
CString Filename;
AudibleSoundClass * SoundObj;
RefCountPtr<AudibleSoundClass> SoundObj;
};

//{{AFX_INSERT_LOCATION}}
Expand Down
39 changes: 18 additions & 21 deletions Core/Tools/W3DView/RingPropertySheet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,9 @@ RingPropertySheetClass::RingPropertySheetClass
CWnd * pParentWnd,
UINT iSelectPage
)
: m_RenderObj (NULL),
CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
: CPropertySheet(nIDCaption, pParentWnd, iSelectPage),
m_RenderObj (RefCountPtr<RingRenderObjClass>::Create_AddRef(ring))
{
REF_PTR_SET (m_RenderObj, ring);
Initialize ();
return ;
}
Expand All @@ -69,10 +68,9 @@ RingPropertySheetClass::RingPropertySheetClass
CWnd * pParentWnd,
UINT iSelectPage
)
: m_RenderObj (NULL),
CPropertySheet(pszCaption, pParentWnd, iSelectPage)
: CPropertySheet(pszCaption, pParentWnd, iSelectPage),
m_RenderObj (RefCountPtr<RingRenderObjClass>::Create_AddRef(ring))
{
REF_PTR_SET (m_RenderObj, ring);
Initialize ();
return ;
}
Expand All @@ -85,7 +83,6 @@ RingPropertySheetClass::RingPropertySheetClass
/////////////////////////////////////////////////////////////////////////////
RingPropertySheetClass::~RingPropertySheetClass (void)
{
REF_PTR_RELEASE (m_RenderObj);
return ;
}

Expand Down Expand Up @@ -183,7 +180,7 @@ RingPropertySheetClass::Add_Object_To_Viewer (void)
//
// Create a new prototype for this object
//
RingPrototypeClass *prototype = new RingPrototypeClass (m_RenderObj);
RingPrototypeClass *prototype = new RingPrototypeClass (m_RenderObj.Peek());

//
// Update the asset manager with the new prototype
Expand All @@ -201,17 +198,17 @@ RingPropertySheetClass::Add_Object_To_Viewer (void)

//
// Display the object
//
doc->Reload_Displayed_Object ();
m_LastSavedName = m_RenderObj->Get_Name ();
REF_PTR_SET (m_RenderObj, (RingRenderObjClass *)doc->GetDisplayedObject ());
//
doc->Reload_Displayed_Object ();
m_LastSavedName = m_RenderObj->Get_Name ();
m_RenderObj = RefCountPtr<RingRenderObjClass>::Create_AddRef((RingRenderObjClass *)doc->GetDisplayedObject ());

//
//
// Pass the object along to the pages
//
m_GeneralPage.Set_Ring (m_RenderObj);
m_ColorPage.Set_Ring (m_RenderObj);
m_ScalePage.Set_Ring (m_RenderObj);
m_GeneralPage.Set_Ring (m_RenderObj.Peek());
m_ColorPage.Set_Ring (m_RenderObj.Peek());
m_ScalePage.Set_Ring (m_RenderObj.Peek());
}

return ;
Expand Down Expand Up @@ -248,9 +245,9 @@ RingPropertySheetClass::Initialize (void)
//
// Pass the object along to the pages
//
m_GeneralPage.Set_Ring (m_RenderObj);
m_ColorPage.Set_Ring (m_RenderObj);
m_ScalePage.Set_Ring (m_RenderObj);
m_GeneralPage.Set_Ring (m_RenderObj.Peek());
m_ColorPage.Set_Ring (m_RenderObj.Peek());
m_ScalePage.Set_Ring (m_RenderObj.Peek());

//
// Add the pages to the sheet
Expand All @@ -277,13 +274,13 @@ RingPropertySheetClass::Initialize (void)
void
RingPropertySheetClass::Create_New_Object (void)
{
m_RenderObj = new RingRenderObjClass;
m_RenderObj = RefCountPtr<RingRenderObjClass>::Create_NoAddRef(new RingRenderObjClass);
m_RenderObj->Set_Name ("Ring");

//
// Display the new object
//
::GetCurrentDocument ()->DisplayObject (m_RenderObj);
::GetCurrentDocument ()->DisplayObject (m_RenderObj.Peek());
return ;
}

3 changes: 2 additions & 1 deletion Core/Tools/W3DView/RingPropertySheet.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
#include "RingColorPropPage.h"
#include "RingGeneralPropPage.h"
#include "RingSizePropPage.h"
#include "ref_ptr.h"


// Forward declarations
Expand Down Expand Up @@ -109,7 +110,7 @@ class RingPropertySheetClass : public CPropertySheet
RingGeneralPropPageClass m_GeneralPage;
RingColorPropPageClass m_ColorPage;
RingSizePropPageClass m_ScalePage;
RingRenderObjClass * m_RenderObj;
RefCountPtr<RingRenderObjClass> m_RenderObj;
CString m_LastSavedName;
};

Expand Down
Loading
Loading