Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions include/nn/g3d/MaterialObj.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#pragma once

#include "nn/gfx/gfx_Device.h"

namespace nn::g3d {
class MaterialObj {
public:
struct InitializeArgument {
s32 CalculateMemorySize();
};

void Initialize(const InitializeArgument&, void*, u64);
void InitializeDependPointer();
void GetBlockBufferAlignment(gfx::TDevice<gfx::ApiVariationNvn8>*) const;
void CalculateBlockBufferSize(gfx::TDevice<gfx::ApiVariationNvn8>*) const;
void SetupBlockBufferImpl(gfx::TDevice<gfx::ApiVariationNvn8>*,
gfx::TMemoryPool<gfx::ApiVariationNvn8>*, s64, u64);
void ResetDirtyFlags();
void SetupBlockBuffer(gfx::TDevice<gfx::ApiVariationNvn8>*,
gfx::TMemoryPool<gfx::ApiVariationNvn8>*, s64, u64);
void CleanupBlockBuffer(gfx::TDevice<gfx::ApiVariationNvn8>*);
void CalculateMaterial(s32);

template <bool>
void ConvertDirtyParams(void*, u32*);

private:
void* filler[16];
};
} // namespace nn::g3d
22 changes: 20 additions & 2 deletions include/nn/g3d/ModelObj.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,38 @@

#include <nn/types.h>

#include <nn/g3d/MaterialObj.h>

namespace nn::g3d {

class MaterialObj;
class ResModel;
class ShapeObj;
class SkeletonObj;

struct Bounds {
f32 x;
f32 y;
f32 z;
f32 unk;
f32 radius;
};

// TODO
class ModelObj {
public:
MaterialObj* FindMaterial(const char* materialName);

SkeletonObj* GetSkeleton() const { return m_Skeleton; }

s32 GetNumShapes() const { return m_NumShapes; }

u8 GetViewDependentModelFlags() const { return m_ViewDependentModelFlags; }

MaterialObj* GetMaterial(s32 index) const { return &m_Materials[index]; }

const Bounds& GetBounds() const { return *m_Bounds; }

s32 get_8c() const { return _8c; }

private:
Expand All @@ -27,7 +45,7 @@ class ModelObj {
void* _8;
void* _10;
u8 _18;
u8 _19;
u8 m_ViewDependentModelFlags;
u16 _1a;
void* _20;
void* _28;
Expand All @@ -36,7 +54,7 @@ class ModelObj {
SkeletonObj* m_Skeleton;
ShapeObj* m_Shapes;
MaterialObj* m_Materials;
void* _50;
Bounds* m_Bounds;
void* m_UserData;
void* _60;
void* _68;
Expand Down