mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-25 20:55:17 +00:00
56 lines
1.2 KiB
C
56 lines
1.2 KiB
C
|
/**
|
||
|
* @file Surface.h
|
||
|
* @brief Defines classes to setup NVN textures on a surface.
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "types.h"
|
||
|
#include "agl/util.h"
|
||
|
|
||
|
class NVNtextureBuilder;
|
||
|
class NVNtexture;
|
||
|
|
||
|
namespace agl
|
||
|
{
|
||
|
namespace detail
|
||
|
{
|
||
|
struct SurfaceBase;
|
||
|
|
||
|
class Surface
|
||
|
{
|
||
|
public:
|
||
|
Surface();
|
||
|
void initialize(agl::TextureType, agl::TextureFormat, u32, agl::TextureAttribute, agl::MultiSampleType);
|
||
|
void initializeSize(u32, u32, u32);
|
||
|
void copyFrom(agl::detail::SurfaceBase const &);
|
||
|
void calcSizeAndAlignment();
|
||
|
void setupNVNtextureBuilder(NVNtextureBuilder *) const;
|
||
|
void printInfo() const;
|
||
|
void copyFrom(NVNtexture const &);
|
||
|
|
||
|
u16 _0;
|
||
|
u16 _2;
|
||
|
u16 _4;
|
||
|
u16 _6;
|
||
|
u8 _8;
|
||
|
u8 _9;
|
||
|
u16 _A;
|
||
|
u8 C[0x1A-0xC];
|
||
|
u8 _1A;
|
||
|
u8 _1B;
|
||
|
u32 _1C;
|
||
|
u8 _20;
|
||
|
u8 _21;
|
||
|
u8 _22;
|
||
|
u8 _23;
|
||
|
};
|
||
|
|
||
|
struct SurfaceBase
|
||
|
{
|
||
|
u64 _0;
|
||
|
u64 _8;
|
||
|
u64 _10;
|
||
|
};
|
||
|
};
|
||
|
};
|