Direct access to screen "API"

Would be great to have direct (low-level) access to next things:

  1. screen API (methods/registers to mark/refresh line, etc...)
  2. frame buffers (both of two?)
  3. control the pipeline (buf-swap, sync, etc...)

Reasons:
I have special blitting engine on SIMD and some support of NEON (ARM's streaming SIMD, looks like MIMD) in dev state. Also there's partially deferred render :muscle:.
I'm sure not only me in the world want to try some custom specialised solutions, engines, any kind of low-level spitialised optimisations.

You're currently providing an official tools & SDK with your game-engine on the top. That's absolutely great but casual, IMHO. And there's now way to impl my custom graphics pipeline. For example currently I have one frame-buffer and two meta-buffers with tries & diffs. So I don't need two fb, swap it, manage dirty lines, you know, etc...

Thanks.

The SDK provides already the essentials functions to work directly with the frame buffers. Usually that covers already most of the need when you do your custom renderer.

	uint8_t* (*getFrame)(void); // row stride = LCD_ROWSIZE
	uint8_t* (*getDisplayFrame)(void); // row stride = LCD_ROWSIZE
	LCDBitmap* (*getDebugBitmap)(void); // valid in simulator only, function is NULL on device
	LCDBitmap* (*copyFrameBufferBitmap)(void);
	void (*markUpdatedRows)(int start, int end);
	void (*display)(void);

If you need other functions, I think it would be better to be more specific what they should do.

3 Likes

Related point: there is no NEON on Playdate STM32 Cortex M7

1 Like

Thanks so much! My mistake.

Could you please point my to one another think?
I'm looking for Exit sys call.
Needed for ends with err and notify rtos or something like that. Anyway, how I can correctly ends program with error?
Also, is there any "send crash-logs" service?

:thinking: Just found ARM.exidx in the ld-map... :thinking: