lgi-devs / lgi-devs/lgi

cairo.ImageSurface.get_data() is useless

Open
#138 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Lua
Stars
491
Forks
81
PR merge metrics
No merged PRs in 30d

Description

Evaluating

require('lgi').cairo.ImageSurface("RGB24", 8, 8):get_data()

returns a userdata object which cannot be used in any other way than comparison for equality. I'd expect it to be an interface to the underlying byte buffer.

I looked into the documentation on how to work this around, but didn't find anything useful; docs/guide.md mentions "Binary buffers (see below)", but there is nothing to see below.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the cairo.ImageSurface get_data() behavior shown in the issue and read the binary-buffer section referenced by docs/guide.md, noting that the referenced section is currently missing. Trace how the returned userdata is exposed and determine the interface and documentation needed for accessing the underlying bytes. Done means get_data() provides a usable byte-buffer interface and the guide explains how to use it.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
computer-graphics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.