summaryrefslogtreecommitdiff
path: root/app/mac/impl/display-spritekit.hh
diff options
context:
space:
mode:
Diffstat (limited to 'app/mac/impl/display-spritekit.hh')
-rw-r--r--app/mac/impl/display-spritekit.hh24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/mac/impl/display-spritekit.hh b/app/mac/impl/display-spritekit.hh
new file mode 100644
index 0000000..64e3b03
--- /dev/null
+++ b/app/mac/impl/display-spritekit.hh
@@ -0,0 +1,24 @@
+#pragma once
+
+#import "nes/common/display.hh"
+
+#import <SpriteKit/SpriteKit.h>
+
+namespace nes::app::mac
+{
+ /// Display implementation rendering contents into a SpriteKit node.
+ class display_spritekit final : public display
+ {
+ SKSpriteNode* node_;
+ NSMutableData* buffer_front_;
+ NSMutableData* buffer_back_;
+ u8* bytes_back_;
+
+ public:
+ explicit display_spritekit(SKSpriteNode* node);
+
+ virtual auto switch_buffers() -> void override;
+ virtual auto set(u32 x, u32 y, rgb value) -> void override;
+ virtual auto get(u32 x, u32 y) const -> rgb override;
+ };
+} // namespace nes::app::mac \ No newline at end of file