mirror of https://github.com/AxioDL/boo.git
synchronize macOS with latest changes
This commit is contained in:
parent
b814cb503a
commit
19014e0ba7
|
@ -19,7 +19,7 @@ public:
|
||||||
friend class MetalDataFactoryImpl;
|
friend class MetalDataFactoryImpl;
|
||||||
MetalDataFactory& m_parent;
|
MetalDataFactory& m_parent;
|
||||||
ObjToken<BaseGraphicsData> m_data;
|
ObjToken<BaseGraphicsData> m_data;
|
||||||
Context(MetalDataFactory& parent);
|
Context(MetalDataFactory& parent __BooTraceArgs);
|
||||||
~Context();
|
~Context();
|
||||||
public:
|
public:
|
||||||
Platform platform() const { return Platform::Metal; }
|
Platform platform() const { return Platform::Metal; }
|
||||||
|
|
|
@ -629,6 +629,7 @@ struct AQSAudioVoiceEngine : BaseAudioVoiceEngine
|
||||||
m_5msFrames = actualSampleRate * 5 / 1000;
|
m_5msFrames = actualSampleRate * 5 / 1000;
|
||||||
|
|
||||||
ChannelMap& chMapOut = m_mixInfo.m_channelMap;
|
ChannelMap& chMapOut = m_mixInfo.m_channelMap;
|
||||||
|
chMapOut.m_channelCount = 0;
|
||||||
if (chCount > 2)
|
if (chCount > 2)
|
||||||
{
|
{
|
||||||
AudioChannelLayout layout;
|
AudioChannelLayout layout;
|
||||||
|
|
|
@ -116,7 +116,7 @@ class MetalDataFactoryImpl : public MetalDataFactory, public GraphicsDataFactory
|
||||||
m_gammaBinding = ctx.newShaderDataBinding(m_gammaShader, m_gammaVFMT, m_gammaVBO.get(), {}, {},
|
m_gammaBinding = ctx.newShaderDataBinding(m_gammaShader, m_gammaVFMT, m_gammaVBO.get(), {}, {},
|
||||||
0, nullptr, nullptr, 2, texs, nullptr, nullptr);
|
0, nullptr, nullptr, 2, texs, nullptr, nullptr);
|
||||||
return true;
|
return true;
|
||||||
});
|
} BooTrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -139,8 +139,8 @@ public:
|
||||||
|
|
||||||
Platform platform() const { return Platform::Metal; }
|
Platform platform() const { return Platform::Metal; }
|
||||||
const char* platformName() const { return "Metal"; }
|
const char* platformName() const { return "Metal"; }
|
||||||
void commitTransaction(const std::function<bool(IGraphicsDataFactory::Context& ctx)>&);
|
void commitTransaction(const std::function<bool(IGraphicsDataFactory::Context& ctx)>& __BooTraceArgs);
|
||||||
ObjToken<IGraphicsBufferD> newPoolBuffer(BufferUse use, size_t stride, size_t count);
|
ObjToken<IGraphicsBufferD> newPoolBuffer(BufferUse use, size_t stride, size_t count __BooTraceArgs);
|
||||||
void _unregisterShareableShader(uint64_t srcKey, uint64_t binKey) { m_sharedShaders.erase(srcKey); }
|
void _unregisterShareableShader(uint64_t srcKey, uint64_t binKey) { m_sharedShaders.erase(srcKey); }
|
||||||
|
|
||||||
static bool CheckForMetalCompiler()
|
static bool CheckForMetalCompiler()
|
||||||
|
@ -1576,8 +1576,8 @@ struct MetalCommandQueue : IGraphicsCommandQueue
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
MetalDataFactory::Context::Context(MetalDataFactory& parent)
|
MetalDataFactory::Context::Context(MetalDataFactory& parent __BooTraceArgs)
|
||||||
: m_parent(parent), m_data(new BaseGraphicsData(static_cast<MetalDataFactoryImpl&>(parent))) {}
|
: m_parent(parent), m_data(new BaseGraphicsData(static_cast<MetalDataFactoryImpl&>(parent) __BooTraceArgsUse)) {}
|
||||||
|
|
||||||
MetalDataFactory::Context::~Context() {}
|
MetalDataFactory::Context::~Context() {}
|
||||||
|
|
||||||
|
@ -1819,28 +1819,28 @@ MetalDataFactory::Context::newShaderDataBinding(const ObjToken<IShaderPipeline>&
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MetalDataFactoryImpl::commitTransaction(const FactoryCommitFunc& trans)
|
void MetalDataFactoryImpl::commitTransaction(const FactoryCommitFunc& trans __BooTraceArgs)
|
||||||
{
|
{
|
||||||
MetalDataFactory::Context ctx(*this);
|
MetalDataFactory::Context ctx(*this __BooTraceArgsUse);
|
||||||
trans(ctx);
|
trans(ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
ObjToken<IGraphicsBufferD> MetalDataFactoryImpl::newPoolBuffer(BufferUse use, size_t stride, size_t count)
|
ObjToken<IGraphicsBufferD> MetalDataFactoryImpl::newPoolBuffer(BufferUse use, size_t stride, size_t count __BooTraceArgs)
|
||||||
{
|
{
|
||||||
ObjToken<BaseGraphicsPool> pool(new BaseGraphicsPool(*this));
|
ObjToken<BaseGraphicsPool> pool(new BaseGraphicsPool(*this __BooTraceArgsUse));
|
||||||
MetalCommandQueue* q = static_cast<MetalCommandQueue*>(m_parent->getCommandQueue());
|
MetalCommandQueue* q = static_cast<MetalCommandQueue*>(m_parent->getCommandQueue());
|
||||||
return {new MetalGraphicsBufferD<BaseGraphicsPool>(pool, q, use, m_ctx, stride, count)};
|
return {new MetalGraphicsBufferD<BaseGraphicsPool>(pool, q, use, m_ctx, stride, count)};
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsCommandQueue* _NewMetalCommandQueue(MetalContext* ctx, IWindow* parentWindow,
|
std::unique_ptr<IGraphicsCommandQueue> _NewMetalCommandQueue(MetalContext* ctx, IWindow* parentWindow,
|
||||||
IGraphicsContext* parent)
|
IGraphicsContext* parent)
|
||||||
{
|
{
|
||||||
return new struct MetalCommandQueue(ctx, parentWindow, parent);
|
return std::make_unique<MetalCommandQueue>(ctx, parentWindow, parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* _NewMetalDataFactory(IGraphicsContext* parent, MetalContext* ctx)
|
std::unique_ptr<IGraphicsDataFactory> _NewMetalDataFactory(IGraphicsContext* parent, MetalContext* ctx)
|
||||||
{
|
{
|
||||||
return new class MetalDataFactoryImpl(parent, ctx);
|
return std::make_unique<MetalDataFactoryImpl>(parent, ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -196,19 +196,19 @@ class GraphicsContextCocoaMetal;
|
||||||
namespace boo
|
namespace boo
|
||||||
{
|
{
|
||||||
static logvisor::Module Log("boo::WindowCocoa");
|
static logvisor::Module Log("boo::WindowCocoa");
|
||||||
IGraphicsCommandQueue* _NewGLCommandQueue(IGraphicsContext* parent, GLContext* glCtx);
|
std::unique_ptr<IGraphicsCommandQueue> _NewGLCommandQueue(IGraphicsContext* parent, GLContext* glCtx);
|
||||||
IGraphicsDataFactory* _NewGLDataFactory(IGraphicsContext* parent, GLContext* glCtx);
|
std::unique_ptr<IGraphicsDataFactory> _NewGLDataFactory(IGraphicsContext* parent, GLContext* glCtx);
|
||||||
IGraphicsCommandQueue* _NewMetalCommandQueue(MetalContext* ctx, IWindow* parentWindow,
|
std::unique_ptr<IGraphicsCommandQueue> _NewMetalCommandQueue(MetalContext* ctx, IWindow* parentWindow,
|
||||||
IGraphicsContext* parent);
|
IGraphicsContext* parent);
|
||||||
IGraphicsDataFactory* _NewMetalDataFactory(IGraphicsContext* parent, MetalContext* ctx);
|
std::unique_ptr<IGraphicsDataFactory> _NewMetalDataFactory(IGraphicsContext* parent, MetalContext* ctx);
|
||||||
void _CocoaUpdateLastGLCtx(NSOpenGLContext* lastGLCtx);
|
void _CocoaUpdateLastGLCtx(NSOpenGLContext* lastGLCtx);
|
||||||
|
|
||||||
class GraphicsContextCocoaGL : public GraphicsContextCocoa
|
class GraphicsContextCocoaGL : public GraphicsContextCocoa
|
||||||
{
|
{
|
||||||
GraphicsContextCocoaGLInternal* m_nsContext = nullptr;
|
GraphicsContextCocoaGLInternal* m_nsContext = nullptr;
|
||||||
|
|
||||||
IGraphicsCommandQueue* m_commandQueue = nullptr;
|
std::unique_ptr<IGraphicsDataFactory> m_dataFactory;
|
||||||
IGraphicsDataFactory* m_dataFactory = nullptr;
|
std::unique_ptr<IGraphicsCommandQueue> m_commandQueue;
|
||||||
NSOpenGLContext* m_mainCtx = nullptr;
|
NSOpenGLContext* m_mainCtx = nullptr;
|
||||||
NSOpenGLContext* m_loadCtx = nullptr;
|
NSOpenGLContext* m_loadCtx = nullptr;
|
||||||
|
|
||||||
|
@ -228,8 +228,6 @@ public:
|
||||||
~GraphicsContextCocoaGL()
|
~GraphicsContextCocoaGL()
|
||||||
{
|
{
|
||||||
m_commandQueue->stopRenderer();
|
m_commandQueue->stopRenderer();
|
||||||
delete m_commandQueue;
|
|
||||||
delete m_dataFactory;
|
|
||||||
printf("CONTEXT DESTROYED\n");
|
printf("CONTEXT DESTROYED\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -281,12 +279,12 @@ public:
|
||||||
|
|
||||||
IGraphicsCommandQueue* getCommandQueue()
|
IGraphicsCommandQueue* getCommandQueue()
|
||||||
{
|
{
|
||||||
return m_commandQueue;
|
return m_commandQueue.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getDataFactory()
|
IGraphicsDataFactory* getDataFactory()
|
||||||
{
|
{
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getMainContextDataFactory()
|
IGraphicsDataFactory* getMainContextDataFactory()
|
||||||
|
@ -299,7 +297,7 @@ public:
|
||||||
Log.report(logvisor::Fatal, "unable to make main NSOpenGLContext");
|
Log.report(logvisor::Fatal, "unable to make main NSOpenGLContext");
|
||||||
}
|
}
|
||||||
[m_mainCtx makeCurrentContext];
|
[m_mainCtx makeCurrentContext];
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getLoadContextDataFactory()
|
IGraphicsDataFactory* getLoadContextDataFactory()
|
||||||
|
@ -312,7 +310,7 @@ public:
|
||||||
Log.report(logvisor::Fatal, "unable to make load NSOpenGLContext");
|
Log.report(logvisor::Fatal, "unable to make load NSOpenGLContext");
|
||||||
}
|
}
|
||||||
[m_loadCtx makeCurrentContext];
|
[m_loadCtx makeCurrentContext];
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void present()
|
void present()
|
||||||
|
@ -372,8 +370,8 @@ class GraphicsContextCocoaMetal : public GraphicsContextCocoa
|
||||||
{
|
{
|
||||||
GraphicsContextCocoaMetalInternal* m_nsContext = nullptr;
|
GraphicsContextCocoaMetalInternal* m_nsContext = nullptr;
|
||||||
|
|
||||||
IGraphicsCommandQueue* m_commandQueue = nullptr;
|
std::unique_ptr<IGraphicsDataFactory> m_dataFactory;
|
||||||
IGraphicsDataFactory* m_dataFactory = nullptr;
|
std::unique_ptr<IGraphicsCommandQueue> m_commandQueue;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IWindow* m_parentWindow;
|
IWindow* m_parentWindow;
|
||||||
|
@ -391,8 +389,6 @@ public:
|
||||||
~GraphicsContextCocoaMetal()
|
~GraphicsContextCocoaMetal()
|
||||||
{
|
{
|
||||||
m_commandQueue->stopRenderer();
|
m_commandQueue->stopRenderer();
|
||||||
delete m_commandQueue;
|
|
||||||
delete m_dataFactory;
|
|
||||||
m_metalCtx->m_windows.erase(m_parentWindow);
|
m_metalCtx->m_windows.erase(m_parentWindow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -445,22 +441,22 @@ public:
|
||||||
|
|
||||||
IGraphicsCommandQueue* getCommandQueue()
|
IGraphicsCommandQueue* getCommandQueue()
|
||||||
{
|
{
|
||||||
return m_commandQueue;
|
return m_commandQueue.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getDataFactory()
|
IGraphicsDataFactory* getDataFactory()
|
||||||
{
|
{
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getMainContextDataFactory()
|
IGraphicsDataFactory* getMainContextDataFactory()
|
||||||
{
|
{
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
IGraphicsDataFactory* getLoadContextDataFactory()
|
IGraphicsDataFactory* getLoadContextDataFactory()
|
||||||
{
|
{
|
||||||
return m_dataFactory;
|
return m_dataFactory.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
void present()
|
void present()
|
||||||
|
|
Loading…
Reference in New Issue