Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

55 lines
1.5 KiB
C++

/**********************************************************************
*<
FILE: IStdDualVS.h
DESCRIPTION: Standard Dual VertexShader helper class interface definition
CREATED BY: Nikolai Sander, Discreet
HISTORY: created 10/11/00
*> Copyright (c) 2000, All Rights Reserved.
**********************************************************************/
#ifndef __ISTDDUALVS__H
#define __ISTDDUALVS__H
#include "IHardwareShader.h"
#define STD_DUAL_VERTEX_SHADER Class_ID(0x40e6b1a0, 0x549cbf06)
class VertexShaderCache
{
bool valid;
INode *node;
public:
VertexShaderCache(){ node = NULL; valid = false;}
~VertexShaderCache(){}
INode *GetNode() { return node;}
void SetNode(INode *node) { this->node = node;}
bool GetValid() { return valid;}
void SetValid(bool valid) { this->valid = valid;}
};
class IStdDualVSCallback
{
public:
virtual ReferenceTarget *GetRefTarg()=0;
virtual VertexShaderCache *CreateVertexShaderCache()=0;
virtual HRESULT InitValid(Mesh* mesh, INode *node)=0;
virtual HRESULT InitValid(MNMesh* mnmesh, INode *node)=0;
};
class IStdDualVS : public IVertexShader, public ReferenceMaker
{
public:
virtual ~IStdDualVS(){};
virtual void SetCallback(IStdDualVSCallback *callback)=0;
virtual int FindNodeIndex(INode *node)=0;
virtual Class_ID ClassID(){ return STD_DUAL_VERTEX_SHADER;}
virtual SClass_ID SuperClassID() { return REF_MAKER_CLASS_ID;}
virtual void DeleteThis() { delete this; }
};
#endif