Skip to content

Commit 059d534

Browse files
committed
refactor(w3dview): migrate AssetInfo, ScreenCursor, PlaySoundDialog to RefCountPtr<T>
Replace MEMBER_ADD/MEMBER_RELEASE macros with RefCountPtr<T> smart pointers. - AssetInfo: m_pRenderObj now RefCountPtr<RenderObjClass> - ScreenCursor: m_pTexture and m_pVertMaterial now RefCountPtr - PlaySoundDialog: SoundObj now RefCountPtr<AudibleSoundClass>
1 parent 7a6402b commit 059d534

File tree

6 files changed

+20
-27
lines changed

6 files changed

+20
-27
lines changed

Core/Tools/W3DView/AssetInfo.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ AssetInfoClass::Initialize (void)
5252
if (m_AssetType != TypeMaterial) {
5353

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

5858
// If we are wrapping an asset name, then create an instance of it.
5959
if (prender_obj == NULL) {
@@ -72,7 +72,7 @@ AssetInfoClass::Initialize (void)
7272
}
7373

7474
// Release our hold on the temporary object
75-
MEMBER_RELEASE (prender_obj);
75+
REF_PTR_RELEASE (prender_obj);
7676
}
7777

7878
return ;

Core/Tools/W3DView/AssetInfo.h

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#pragma once
3838

3939
#include "rendobj.h"
40-
#include "Utils.h"
40+
#include "ref_ptr.h"
4141
#include "AssetTypes.h"
4242

4343

@@ -58,16 +58,15 @@ class AssetInfoClass
5858
//
5959
AssetInfoClass (void)
6060
: m_AssetType (TypeUnknown),
61-
m_dwUserData (0L),
62-
m_pRenderObj (NULL) { Initialize (); }
61+
m_dwUserData (0L) { Initialize (); }
6362

6463
AssetInfoClass (LPCTSTR passet_name, ASSET_TYPE type, RenderObjClass *prender_obj = NULL, DWORD user_data = 0L)
6564
: m_Name (passet_name),
6665
m_AssetType (type),
6766
m_dwUserData (user_data),
68-
m_pRenderObj (NULL) { MEMBER_ADD (m_pRenderObj, prender_obj); Initialize (); }
67+
m_pRenderObj (RefCountPtr<RenderObjClass>::Create_AddRef(prender_obj)) { Initialize (); }
6968

70-
virtual ~AssetInfoClass (void) { MEMBER_RELEASE (m_pRenderObj); }
69+
virtual ~AssetInfoClass (void) {}
7170

7271
//////////////////////////////////////////////////////////////
7372
//
@@ -83,14 +82,14 @@ class AssetInfoClass
8382
ASSET_TYPE Get_Type (void) const { return m_AssetType; }
8483
DWORD Get_User_Number (void) const { return m_dwUserData; }
8584
const CString & Get_User_String (void) const { return m_UserString; }
86-
RenderObjClass * Get_Render_Obj (void) const { SAFE_ADD_REF (m_pRenderObj); return m_pRenderObj; }
87-
RenderObjClass * Peek_Render_Obj (void) const { return m_pRenderObj; }
85+
RenderObjClass * Get_Render_Obj (void) const { RenderObjClass *ptr = m_pRenderObj.Peek(); if (ptr) ptr->Add_Ref(); return ptr; }
86+
RenderObjClass * Peek_Render_Obj (void) const { return m_pRenderObj.Peek(); }
8887
void Set_Name (LPCTSTR pname) { m_Name = pname; }
8988
void Set_Hierarchy_Name (LPCTSTR pname) { m_HierarchyName = pname; }
9089
void Set_Type (ASSET_TYPE type) { m_AssetType = type; }
9190
void Set_User_Number (DWORD user_data) { m_dwUserData = user_data; }
9291
void Set_User_String (LPCTSTR string) { m_UserString = string; }
93-
void Set_Render_Obj (RenderObjClass *pobj) { MEMBER_ADD (m_pRenderObj, pobj); }
92+
void Set_Render_Obj (RenderObjClass *pobj) { m_pRenderObj = RefCountPtr<RenderObjClass>::Create_AddRef(pobj); }
9493

9594
//
9695
// Information methods
@@ -118,5 +117,5 @@ class AssetInfoClass
118117
CString m_OriginalName;
119118
ASSET_TYPE m_AssetType;
120119
DWORD m_dwUserData;
121-
RenderObjClass * m_pRenderObj;
120+
RefCountPtr<RenderObjClass> m_pRenderObj;
122121
};

Core/Tools/W3DView/PlaySoundDialog.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ static char THIS_FILE[] = __FILE__;
3939
/////////////////////////////////////////////////////////////////////////////
4040
PlaySoundDialogClass::PlaySoundDialogClass(LPCTSTR filename, CWnd* pParent /*=NULL*/)
4141
: Filename (filename),
42-
SoundObj (NULL),
4342
CDialog(PlaySoundDialogClass::IDD, pParent)
4443
{
4544
//{{AFX_DATA_INIT(PlaySoundDialogClass)
@@ -100,7 +99,6 @@ void
10099
PlaySoundDialogClass::OnCancel (void)
101100
{
102101
SoundObj->Stop ();
103-
MEMBER_RELEASE (SoundObj);
104102

105103
CDialog::OnCancel ();
106104
return ;
@@ -125,7 +123,7 @@ PlaySoundDialogClass::OnInitDialog (void)
125123
//
126124
// Create the sound effect so we can play it
127125
//
128-
SoundObj = WWAudioClass::Get_Instance ()->Create_Sound_Effect (Filename);
126+
SoundObj = RefCountPtr<AudibleSoundClass>::Create_NoAddRef(WWAudioClass::Get_Instance ()->Create_Sound_Effect (Filename));
129127
if (SoundObj == NULL) {
130128
CString message;
131129
message.Format ("Cannot find sound file: %s!", (LPCTSTR)Filename, MB_OK);

Core/Tools/W3DView/PlaySoundDialog.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
#include "resource.h"
2222
#include "WWAudio.h"
23+
#include "ref_ptr.h"
2324

2425

2526
/////////////////////////////////////////////////////////////////////////////
@@ -61,7 +62,7 @@ class PlaySoundDialogClass : public CDialog
6162

6263
private:
6364
CString Filename;
64-
AudibleSoundClass * SoundObj;
65+
RefCountPtr<AudibleSoundClass> SoundObj;
6566
};
6667

6768
//{{AFX_INSERT_LOCATION}}

Core/Tools/W3DView/ScreenCursor.cpp

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,6 @@
5353
///////////////////////////////////////////////////////////////////
5454
ScreenCursorClass::ScreenCursorClass (void)
5555
: m_ScreenPos (0, 0),
56-
m_pTexture (NULL),
57-
m_pVertMaterial (NULL),
5856
m_Width (0),
5957
m_Height (0),
6058
m_hWnd (NULL)
@@ -71,9 +69,7 @@ ScreenCursorClass::ScreenCursorClass (void)
7169
///////////////////////////////////////////////////////////////////
7270
ScreenCursorClass::ScreenCursorClass (const ScreenCursorClass &src)
7371
: m_ScreenPos (0, 0),
74-
m_pTexture (NULL),
7572
m_hWnd (NULL),
76-
m_pVertMaterial (NULL),
7773
m_Width (0),
7874
m_Height (0),
7975
RenderObjClass (src)
@@ -90,8 +86,6 @@ ScreenCursorClass::ScreenCursorClass (const ScreenCursorClass &src)
9086
///////////////////////////////////////////////////////////////////
9187
ScreenCursorClass::~ScreenCursorClass (void)
9288
{
93-
REF_PTR_RELEASE (m_pTexture);
94-
REF_PTR_RELEASE (m_pVertMaterial);
9589
return ;
9690
}
9791

@@ -104,10 +98,10 @@ ScreenCursorClass::~ScreenCursorClass (void)
10498
void
10599
ScreenCursorClass::Initialize (void)
106100
{
107-
REF_PTR_RELEASE(m_pVertMaterial);
101+
m_pVertMaterial = NULL;
108102

109103
// Create default vertex material
110-
m_pVertMaterial = NEW_REF( VertexMaterialClass, ());
104+
m_pVertMaterial = RefCountPtr<VertexMaterialClass>::Create_NoAddRef(NEW_REF( VertexMaterialClass, ()));
111105
m_pVertMaterial->Set_Diffuse (1.0F, 1.0F, 1.0F);
112106
m_pVertMaterial->Set_Emissive (0.0F, 0.0F, 0.0F);
113107
m_pVertMaterial->Set_Specular (1.0F, 1.0F, 1.0F);
@@ -153,7 +147,7 @@ ScreenCursorClass::Initialize (void)
153147
void
154148
ScreenCursorClass::Set_Texture (TextureClass *texture)
155149
{
156-
MEMBER_ADD (m_pTexture, texture);
150+
m_pTexture = RefCountPtr<TextureClass>::Create_AddRef(texture);
157151

158152
// Find the dimensions of the texture:
159153
if (m_pTexture != NULL) {

Core/Tools/W3DView/ScreenCursor.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
#include "resource.h"
3636
#include "rendobj.h"
3737
#include "Vector3i.h"
38+
#include "ref_ptr.h"
3839

3940
// Forward declarations
4041
class VertexMaterialClass;
@@ -93,8 +94,8 @@ class ScreenCursorClass : public RenderObjClass
9394
////////////////////////////////////////////////////////////////////////
9495
HWND m_hWnd;
9596
Vector2 m_ScreenPos;
96-
TextureClass * m_pTexture;
97-
VertexMaterialClass *m_pVertMaterial;
97+
RefCountPtr<TextureClass> m_pTexture;
98+
RefCountPtr<VertexMaterialClass> m_pVertMaterial;
9899

99100
Vector3 m_Verticies[4];
100101
Vector3 m_Normals[4];

0 commit comments

Comments
 (0)