Object tracker bug fixes; optional metal binary shader compilation

This commit is contained in:
Jack Andersen
2017-11-04 20:12:49 -10:00
parent 021143fd89
commit 3a7987bb21
9 changed files with 619 additions and 518 deletions

View File

@@ -9,6 +9,7 @@
namespace boo
{
struct BaseGraphicsData;
class MetalDataFactory : public IGraphicsDataFactory
{
@@ -17,7 +18,9 @@ public:
{
friend class MetalDataFactoryImpl;
MetalDataFactory& m_parent;
Context(MetalDataFactory& parent) : m_parent(parent) {}
ObjToken<BaseGraphicsData> m_data;
Context(MetalDataFactory& parent);
~Context();
public:
Platform platform() const { return Platform::Metal; }
const SystemChar* platformName() const { return _S("Metal"); }
@@ -40,7 +43,9 @@ public:
size_t baseVert = 0, size_t baseInst = 0);
ObjToken<IShaderPipeline> newShaderPipeline(const char* vertSource, const char* fragSource,
IVertexFormat* vtxFmt, unsigned targetSamples,
std::vector<uint8_t>* vertBlobOut,
std::vector<uint8_t>* fragBlobOut,
const ObjToken<IVertexFormat>& vtxFmt, unsigned targetSamples,
BlendFactor srcFac, BlendFactor dstFac, Primitive prim,
ZTest depthTest, bool depthWrite, bool colorWrite,
bool alphaWrite, CullMode culling);