Add Metal support to Qt frontend and clean up renderer creation code (#795)
* Qt: Initial support for Metal renderer * Clean up graphics context code * Nits * More nits * Qt: Move screen-related stuff to own folder * Qt: Make screen widget polymorphic * Qt: Re-add Metal * Add factory for screen widget * Qt: Support compilation without Metal * Qt: Fix build without Metal * Oops * oops
This commit is contained in:
18
include/panda_qt/screen/screen_mtl.hpp
Normal file
18
include/panda_qt/screen/screen_mtl.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
#pragma once
|
||||
#include "panda_qt/screen/screen.hpp"
|
||||
|
||||
class ScreenWidgetMTL : public ScreenWidget {
|
||||
void* mtkLayer = nullptr;
|
||||
|
||||
// Objective-C++ functions for handling the Metal context
|
||||
bool createMetalContext();
|
||||
void resizeMetalView();
|
||||
|
||||
public:
|
||||
ScreenWidgetMTL(API api, ResizeCallback resizeCallback, QWidget* parent = nullptr);
|
||||
~ScreenWidgetMTL() override;
|
||||
|
||||
virtual void* getMTKLayer() override;
|
||||
virtual bool createContext() override;
|
||||
virtual void resizeDisplay() override;
|
||||
};
|
||||
Reference in New Issue
Block a user