[olympic/studio] Change Studio modules to pass StudioContext instead of turbine::Context
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				Build / build (push) Successful in 2m23s
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	Build / build (push) Successful in 2m23s
				
			This commit is contained in:
		@@ -50,7 +50,7 @@ static ox::Error runApp(
 | 
			
		||||
	turbine::setConstantRefresh(*ctx, false);
 | 
			
		||||
	studio::StudioContext studioCtx(*ctx);
 | 
			
		||||
	turbine::setApplicationData(*ctx, &studioCtx);
 | 
			
		||||
	StudioUI ui(*ctx, projectDataDir);
 | 
			
		||||
	StudioUI ui(studioCtx, projectDataDir);
 | 
			
		||||
	studioCtx.ui = &ui;
 | 
			
		||||
	StudioUIDrawer drawer(ui);
 | 
			
		||||
	turbine::gl::addDrawer(*ctx, &drawer);
 | 
			
		||||
 
 | 
			
		||||
@@ -40,8 +40,9 @@ oxModelBegin(StudioConfig)
 | 
			
		||||
	oxModelFieldRename(show_project_explorer, showProjectExplorer)
 | 
			
		||||
oxModelEnd()
 | 
			
		||||
 | 
			
		||||
StudioUI::StudioUI(turbine::Context &ctx, ox::StringView projectDataDir) noexcept:
 | 
			
		||||
		m_ctx(ctx),
 | 
			
		||||
StudioUI::StudioUI(studio::StudioContext &ctx, ox::StringView projectDataDir) noexcept:
 | 
			
		||||
		m_sctx(ctx),
 | 
			
		||||
		m_ctx(ctx.tctx),
 | 
			
		||||
		m_projectDataDir(projectDataDir),
 | 
			
		||||
		m_projectExplorer(m_ctx),
 | 
			
		||||
		m_newProject(ox::String(projectDataDir)),
 | 
			
		||||
@@ -288,10 +289,10 @@ void StudioUI::loadEditorMaker(studio::EditorMaker const&editorMaker) noexcept {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void StudioUI::loadModule(studio::Module const*mod) noexcept {
 | 
			
		||||
	for (auto const&editorMaker : mod->editors(m_ctx)) {
 | 
			
		||||
	for (auto const&editorMaker : mod->editors(m_sctx)) {
 | 
			
		||||
		loadEditorMaker(editorMaker);
 | 
			
		||||
	}
 | 
			
		||||
	for (auto &im : mod->itemMakers(m_ctx)) {
 | 
			
		||||
	for (auto &im : mod->itemMakers(m_sctx)) {
 | 
			
		||||
		m_newMenu.addItemMaker(std::move(im));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ class StudioUI: public ox::SignalHandler {
 | 
			
		||||
	friend class StudioUIDrawer;
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		studio::StudioContext &m_sctx;
 | 
			
		||||
		turbine::Context &m_ctx;
 | 
			
		||||
		ox::String m_projectDataDir;
 | 
			
		||||
		ox::UPtr<studio::Project> m_project;
 | 
			
		||||
@@ -47,7 +48,7 @@ class StudioUI: public ox::SignalHandler {
 | 
			
		||||
		bool m_showProjectExplorer = true;
 | 
			
		||||
 | 
			
		||||
	public:
 | 
			
		||||
		explicit StudioUI(turbine::Context &ctx, ox::StringView projectDataDir) noexcept;
 | 
			
		||||
		explicit StudioUI(studio::StudioContext &ctx, ox::StringView projectDataDir) noexcept;
 | 
			
		||||
 | 
			
		||||
		void update() noexcept;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -27,15 +27,15 @@ class Module {
 | 
			
		||||
	public:
 | 
			
		||||
		virtual ~Module() noexcept = default;
 | 
			
		||||
 | 
			
		||||
		virtual ox::Vector<EditorMaker> editors(turbine::Context &ctx) const;
 | 
			
		||||
		virtual ox::Vector<EditorMaker> editors(studio::StudioContext &ctx) const;
 | 
			
		||||
 | 
			
		||||
		virtual ox::Vector<ox::UPtr<ItemMaker>> itemMakers(turbine::Context&) const;
 | 
			
		||||
		virtual ox::Vector<ox::UPtr<ItemMaker>> itemMakers(studio::StudioContext&) const;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
template<typename Editor>
 | 
			
		||||
[[nodiscard]]
 | 
			
		||||
studio::EditorMaker editorMaker(turbine::Context &ctx, ox::CRStringView ext) noexcept {
 | 
			
		||||
studio::EditorMaker editorMaker(studio::StudioContext &ctx, ox::CRStringView ext) noexcept {
 | 
			
		||||
	return {
 | 
			
		||||
			{ox::String(ext)},
 | 
			
		||||
			[&ctx](ox::CRStringView path) -> ox::Result<studio::BaseEditor*> {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,11 +6,11 @@
 | 
			
		||||
 | 
			
		||||
namespace studio {
 | 
			
		||||
 | 
			
		||||
ox::Vector<EditorMaker> Module::editors(turbine::Context&) const {
 | 
			
		||||
ox::Vector<EditorMaker> Module::editors(studio::StudioContext&) const {
 | 
			
		||||
	return {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ox::Vector<ox::UPtr<ItemMaker>> Module::itemMakers(turbine::Context&) const {
 | 
			
		||||
ox::Vector<ox::UPtr<ItemMaker>> Module::itemMakers(studio::StudioContext&) const {
 | 
			
		||||
	return {};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user