Skip to content

Use new NativeWindow::lock() API in dummy_render()#7

Merged
rib merged 1 commit intomainfrom
na-pixels-lock
Apr 2, 2026
Merged

Use new NativeWindow::lock() API in dummy_render()#7
rib merged 1 commit intomainfrom
na-pixels-lock

Conversation

@MarijnS95
Copy link
Copy Markdown
Member

No description provided.

Some(HardwareBufferFormat::R8G8B8A8_UNORM),
)
.unwrap()
}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It could be good to have a comment explaining what this is for.

This is intended to be a bare-bones example of how to use android-activity so it's quite likely someone looking at this isn't going to be familiar with what set_buffers_geometry does (and the name from the NDK isn't very self documenting when we're using it to set the format and not the 'geometry' as such).

Maybe we can just note that, since this example is going to clear the window from the CPU then we want to ensure the buffer is in a known format that we will be able to write to from dummy_render()

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, still a draft as I wanted to share progress and show what's possible with the new bindings.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, I'd be happy to have a convenient way to at least show something other than a black screen, but without needing to pull in a full-blown graphics API.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool cool, this already shows a gradient instead of a black screen, as a sign of life.

We can probably drop the draft status now, IIRC this is mostly ready.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah don't mind if it's taken out of draft and will just want to wait until it doesn't depend on [patches] before landing.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, expect that to take ±1month though. That should be enough time to see if there are any issues with this patch though, pretty helpful to test compatibility with the ecosystem meanwhile.

@MarijnS95 MarijnS95 force-pushed the na-pixels-lock branch 2 times, most recently from 6cb5bd1 to 22450a7 Compare June 26, 2023 20:12
@MarijnS95 MarijnS95 changed the title na-mainloop: Use new NativeWindow::lock() API Use new NativeWindow::lock() API in dummy_render() Jun 26, 2023
@MarijnS95 MarijnS95 marked this pull request as ready for review June 27, 2023 17:42
@MarijnS95 MarijnS95 force-pushed the na-pixels-lock branch 2 times, most recently from c5954d6 to 15a558b Compare August 26, 2023 19:55
@rib rib force-pushed the na-pixels-lock branch 2 times, most recently from 5d484f8 to c726c77 Compare April 2, 2026 17:46
@rib
Copy link
Copy Markdown
Member

rib commented Apr 2, 2026

Sorry this didn't land sooner but I rebased and just tweaked it to add a format assertion in dummy_render and made it also explicitly write to the blue + alpha channels.

I'm not quite sure what just happened though with the follow up force push of the previous branch @MarijnS95 ?

@MarijnS95
Copy link
Copy Markdown
Member Author

A bunch of my changes went missing but you're right, you also added some changes that are now missing in my force-push. Working on reconverging (was still on this branch and instead intended to first rebase/fix #9).

@rib
Copy link
Copy Markdown
Member

rib commented Apr 2, 2026

okey - I didn't mean to discard other changes but just guessed the other lint changes might be out of date by now.

maybe I can try and open a separate PR with just your previous lint fixes so this one just deals with the dummy_render changes?

@MarijnS95
Copy link
Copy Markdown
Member Author

Moved to #24, now restoring this PR.

@MarijnS95 MarijnS95 force-pushed the na-pixels-lock branch 2 times, most recently from 110ad0b to 655a0ab Compare April 2, 2026 18:17
@MarijnS95
Copy link
Copy Markdown
Member Author

Since the buffer is """maybeuninit""", setting all channels to valid values is "required" (hoping Android doesn't read the skipped padding/stride bytes).

Not too keen on the assert but let's keep it. I rather allow RGBX8 too, but might be a bit of a hassle to support now. This is the only format I set in softbuffer:

https://github.com/rust-windowing/softbuffer/blob/fb3bc8df4f338685816886774867691e9f6064ad/src/backends/android.rs#L76

But then allow RGBA8 too in case the user changed it:

https://github.com/rust-windowing/softbuffer/blob/fb3bc8df4f338685816886774867691e9f6064ad/src/backends/android.rs#L101-L114

(The new Alpha code came after my changes, I haven't touched softbuffer since due to constraints)

@rib rib merged commit 849a916 into main Apr 2, 2026
9 checks passed
@rib rib deleted the na-pixels-lock branch April 2, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants