Skip to content

Commit

Permalink
Move glClear to the common point before the actual render of an image
Browse files Browse the repository at this point in the history
Added work in progress reverse engineering of MDL files

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
  • Loading branch information
Almamu committed Oct 31, 2022
1 parent da6dca0 commit 157966a
Show file tree
Hide file tree
Showing 2 changed files with 109 additions and 10 deletions.
104 changes: 104 additions & 0 deletions docs/rendering/MDL_FILES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# MDL Files
These seem to be simple model files containing the required information to render 3D objects.
They're also used in some 2D backgrounds (like 2879436369) for bones.

**NOTE**: This documentation page is not completed yet as there's still work left to do on the reverse engineering of this file format. For now just a structure, describing the file format is here

```
//
// 010 editor template
//
//
typedef struct {
float x <fgcolor=cRed>;
float y <fgcolor=cGreen>;
float z <fgcolor=cBlue>;
} VECTOR3;
typedef struct {
float x <fgcolor=cRed>;
float y <fgcolor=cGreen>;
float z <fgcolor=cBlue>;
float w <fgcolor=cPurple>;
} VECTOR4;
typedef struct {
float x <fgcolor=cRed>;
float y <fgcolor=cGreen>;
} VECTOR2;
typedef struct {
DWORD x <fgcolor=cRed>;
DWORD y <fgcolor=cGreen>;
DWORD z <fgcolor=cBlue>;
DWORD w <fgcolor=cPurple>;
} BLENDINDICES;
typedef struct {
VECTOR3 vertex <bgcolor=cRed>;
BLENDINDICES blendindices;
VECTOR4 blendweight;
VECTOR2 uv <bgcolor=cBlue>;
} VERTEX;
typedef struct {
WORD x;
WORD y;
WORD z;
} VERTEXINDICE;
typedef struct {
CHAR header[];
DWORD first;
DWORD second;
DWORD third;
CHAR json[];
DWORD fourth;
DWORD fifth;
DWORD vertexByteLength;
VERTEX vertices[vertexByteLength / sizeof(VERTEX)];
DWORD indicesByteLength;
VERTEXINDICE indices[indicesByteLength / sizeof (VERTEXINDICE)] <bgcolor=cYellow>;
} MDLVHEADER;
typedef struct {
BYTE tmp;
DWORD type;
DWORD unk1;
} BONEENTRYHEADER;
typedef struct {
BONEENTRYHEADER header;
DWORD entryByteLength;
float v[entryByteLength / sizeof (float)];
CHAR info[];
} BONEENTRY;
typedef struct {
BONEENTRYHEADER header;
} BONE2ENTRY;
typedef struct {
CHAR header[];
DWORD mightBeByteLength;
DWORD numberOfBones;
BONEENTRY bones[numberOfBones]<optimize=false>;
BONE2ENTRY unk[numberOfBones]<optimize=false>;
} MDLSHEADER;
typedef struct {
CHAR header[];
} MDLAHEADER;
typedef struct {
MDLVHEADER mdlv;
MDLSHEADER mdls;
} MDLFILE;
LittleEndian ();
MDLFILE file;
// mdlv => vertices information
// mdls => skinning information
// mdla => animation information
```
15 changes: 5 additions & 10 deletions src/WallpaperEngine/Render/Objects/CImage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -269,11 +269,6 @@ void CImage::simpleRender ()
{
ITexture* input = this->m_mainFBO;

// clear the main framebuffer
glBindFramebuffer (GL_FRAMEBUFFER, this->m_mainFBO->getFramebuffer ());
// attach the main texture
glClear (GL_COLOR_BUFFER_BIT);

// FIXME: THIS IS A QUICK HACK FOR ANIMATED IMAGES, IF ANY OF THOSE HAVE ANY EFFECT ON THEM THIS WILL LIKELY BREAK
if (this->getTexture ()->isAnimated () == true)
{
Expand Down Expand Up @@ -303,11 +298,6 @@ void CImage::complexRender ()
CFBO* drawTo = this->m_mainFBO;
ITexture* asInput = this->getTexture ();

// clear the main framebuffer
glBindFramebuffer (GL_FRAMEBUFFER, this->m_mainFBO->getFramebuffer ());
// attach the main texture
glClear (GL_COLOR_BUFFER_BIT);

// do the first pass render into the main framebuffer
auto cur = this->m_copyMaterial->getPasses ().begin ();
auto end = this->m_copyMaterial->getPasses ().end ();
Expand Down Expand Up @@ -389,6 +379,11 @@ void CImage::render ()

glColorMask (true, true, true, true);

// clear the main framebuffer
glBindFramebuffer (GL_FRAMEBUFFER, this->m_mainFBO->getFramebuffer ());
// attach the main texture
glClear (GL_COLOR_BUFFER_BIT);

// check if there's more than one pass and do different things based on that
if (this->m_effects.empty () == true)
this->simpleRender ();
Expand Down

0 comments on commit 157966a

Please # to comment.