add RenderExternalResource

This commit is contained in:
Adam Jensen 2022-05-28 10:54:02 +01:00
parent 61561846da
commit 358a7c271a
9 changed files with 53 additions and 25 deletions

View File

@ -1,5 +1,6 @@
#pragma once
#include "CommonMaterial.h"
#include "PCDX11RenderExternalResource.h"
#include "surfaces/PCDX11BitmapTexture.h"
#include "buffers/PCDX11StaticConstantBuffer.h"
@ -10,11 +11,9 @@ struct MeshTab0Ext128Sub10;
struct VertexAttributeLayoutA;
class PCDX11Material :
public CommonMaterial
// public PCDX11RenderExternalResource
public CommonMaterial,
public PCDX11RenderExternalResource
{
PCDX11RenderDevice *renderDevice; // 14
unsigned short numTextures = 0; // 1C
unsigned short texBits = 0; // 1E
// PCDX11BitmapTexture *texture[4]; // 20
@ -22,7 +21,7 @@ class PCDX11Material :
PCDX11StaticConstantBuffer *constantBuffersVs[16]; // 70
public:
PCDX11Material(PCDX11RenderDevice *renderDevice) :
renderDevice(renderDevice)
PCDX11RenderExternalResource(renderDevice)
{}
void load(MaterialBlob *) override;

View File

@ -0,0 +1,16 @@
#pragma once
#include "RenderExternalResource.h"
namespace cdc {
class PCDX11RenderDevice;
class PCDX11RenderExternalResource : public RenderExternalResource {
public:
PCDX11RenderDevice *renderDevice;
PCDX11RenderExternalResource(PCDX11RenderDevice *renderDevice)
: renderDevice(renderDevice)
{}
};
}

View File

@ -10,8 +10,7 @@ namespace cdc {
PCDX11RenderModel::PCDX11RenderModel(PCDX11RenderDevice *renderDevice, uint32_t size) :
RenderMesh(),
// RenderExternalResource(renderDevice),
renderDevice(renderDevice),
PCDX11RenderExternalResource(renderDevice),
size(size)
{
meshHeader = (MeshHeader*)new char[size];

View File

@ -1,6 +1,6 @@
#pragma once
#include "RenderMesh.h"
// #include "PCDX11RenderExternalResource.h"
#include "PCDX11RenderExternalResource.h"
namespace cdc {
@ -8,12 +8,10 @@ class PCDX11RenderDevice;
class PCDX11SimpleStaticIndexBuffer;
class PCDX11RenderModel :
public RenderMesh
// public PCDX11RenderExternalResource
public RenderMesh,
public PCDX11RenderExternalResource
{
public:
PCDX11RenderDevice *renderDevice; // in PCDX11RenderExternalResource
uint32_t size;
MeshHeader *meshHeader;

View File

@ -1,5 +1,6 @@
#pragma once
#include "CommonRenderModelInstance.h"
#include "PCDX11RenderExternalResource.h"
#include "PCDX11RenderModel.h" // for cast from PCDX11RenderModel* to RenderMesh*
namespace cdc {
@ -8,15 +9,14 @@ class PCDX11RenderDevice;
class PCDX11RenderModel;
class PCDX11RenderModelInstance :
public CommonRenderModelInstance
// public PCDX11RenderExternalResource
public CommonRenderModelInstance,
public PCDX11RenderExternalResource
{
PCDX11RenderDevice *renderDevice; // part of CommonRenderModelInstance
PCDX11RenderModel *renderModel;
public:
PCDX11RenderModelInstance(PCDX11RenderModel *renderModel, PCDX11RenderDevice *renderDevice) :
CommonRenderModelInstance(renderModel),
renderDevice(renderDevice)
PCDX11RenderExternalResource(renderDevice)
{
baseMask = 1; // hack
}

View File

@ -0,0 +1,12 @@
#pragma once
// #include "../types.h"
namespace cdc {
class RenderExternalResource {
// uint32_t dword4;
public:
virtual ~RenderExternalResource() = default;
};
}

View File

@ -8,6 +8,8 @@ PCDX11ShaderLib::PCDX11ShaderLib(
PCDX11ShaderLib::Type type,
PCDX11RenderDevice *renderDevice,
bool wineWorkaround)
:
PCDX11RenderExternalResource(renderDevice)
{
buffer = nullptr;
switch (type) {

View File

@ -1,14 +1,15 @@
#pragma once
#include "PCDX11ShaderTable.h"
#include "../PCDX11RenderExternalResource.h"
#include "IShaderLib.h"
#include "PCDX11ShaderTable.h"
namespace cdc {
class PCDX11RenderDevice;
class PCDX11ShaderLib :
public IShaderLib
/* public PCDX11RenderExternalResource */
public IShaderLib,
public PCDX11RenderExternalResource
{
public:
enum Type {
@ -21,6 +22,7 @@ public:
PCDX11ShaderLib(uint32_t size, PCDX11RenderDevice *renderDevice) :
IShaderLib(),
PCDX11RenderExternalResource(renderDevice),
table(nullptr)
{
buffer = new char[size];

View File

@ -1,7 +1,7 @@
#pragma once
#include "TextureMap.h"
#include "../PCDX11RenderExternalResource.h"
#include "PCDX11BitmapTexture.h"
// #include "PCDX11RenderExternalResource.h"
#include "TextureMap.h"
#include <d3d11_1.h>
namespace cdc {
@ -35,8 +35,8 @@ struct TextureBlob {
class PCDX11Texture :
public TextureMap,
public PCDX11BitmapTexture
// public PCDX11RenderExternalResource
public PCDX11BitmapTexture,
public PCDX11RenderExternalResource
{
public:
uint32_t width; // 18
@ -58,8 +58,8 @@ public:
public:
PCDX11Texture(PCDX11RenderDevice *renderDevice) :
TextureMap(),
PCDX11BitmapTexture(renderDevice, 0, 0, 256, 0)
// PCDX11RenderExternalResource(renderDevice)
PCDX11BitmapTexture(renderDevice, 0, 0, 256, 0),
PCDX11RenderExternalResource(renderDevice)
{}
// for RenderResource