https://github.com/britzl/defold-screenshot
Screenshot extension for the Defold game engine
https://github.com/britzl/defold-screenshot
defold defold-library
Last synced: 2 months ago
JSON representation
Screenshot extension for the Defold game engine
- Host: GitHub
- URL: https://github.com/britzl/defold-screenshot
- Owner: britzl
- License: mit
- Created: 2017-02-21T19:49:37.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-04-02T05:30:46.000Z (3 months ago)
- Last Synced: 2025-04-13T03:09:43.700Z (2 months ago)
- Topics: defold, defold-library
- Language: C++
- Size: 1.5 MB
- Stars: 36
- Watchers: 5
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-defold - Screenshot
README

# Defold-Screenshot
Screenshot extension for the [Defold game engine](http://www.defold.com)## Installation
You can use Defold-Screenshot in your own project by adding this project as a [Defold library dependency](http://www.defold.com/manuals/libraries/). Open your game.project file and in the dependencies field under project add:https://github.com/britzl/defold-screenshot/archive/master.zip
Or point to the ZIP file of a [specific release](https://github.com/britzl/defold-screenshot/releases).
## API
The screenshot API provides four versions of each function:* Partial screenshot - synchronous. Not available on HTML5.
* Fullscreen screenshot - synchronous. Not available on HTML5.
* Partial screenshot - asynchronous
* Fullscreen screenshot - asynchronousThe asynchronous versions will capture the screenshot on POST RENDER. The synchronous versions will capture the screenshot immediately. On some mobile devices this may result in a blank capture.
### screenshot.png([x, y, w, h, [callback]])
Capture a full screen or partial screenshot as a PNG. Example:```
-- fullscreen with callback
screenshot.png(function(self, image, w, h)
-- do something with image
end)-- partial with callback
-- 100x200 pixels starting from 0,0 (lower left corner)
screenshot.png(0, 0, 100, 200, function(self, image, w, h)
-- do something with image
end)-- fullscreen
local image, w, h = screenshot.png()-- partial
-- 100x200 pixels starting from 0,0 (lower left corner)
local image, w, h = screenshot.png(0, 0, 100, 200)
```### screenshot.buffer([x, y, w, h, [callback]])
Capture a full screen or partial screenshot as a Defold buffer.```
-- Take screenshot and return it as a Defold buffer
-- Set buffer as texture on a model
local buffer, w, h = screenshot.buffer()
local url = go.get("cube#model", "texture0")
resource.set_texture(url, { type = resource.TEXTURE_TYPE_2D, width = w, height = h, format = resource.TEXTURE_FORMAT_RGBA }, buffer)
```### screenshot.pixels([x, y, w, h, [callback]])
Capture a full screen or partial screenshot as raw pixels.```
-- Take screenshot and return pixels as a Lua string
local pixels, w, h = screenshot.pixels()
```## Credits
* [fpng](https://github.com/richgel999/fpng) for PNG encoding
* Graphics in example by [Kenney](http://www.kenney.nl)