Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
ad0a41f
Extracted code for FbDev support from #571 to make it easier to revie…
piranna Nov 19, 2018
3a1d55d
Fix linting
piranna Nov 20, 2018
9c8a13d
Merge branch 'linting' into framebuffer
piranna Nov 20, 2018
9ebb624
Move `getFormat()` implementation out of header file
piranna Nov 20, 2018
b37d648
Added `Backend::setFormat()` method
piranna Nov 20, 2018
2aa765c
Added `FBDevBackend::setFormat()` method
piranna Nov 20, 2018
2e60f78
[FBDevBackend] Get `width` and `height` in constructor
piranna Nov 20, 2018
c29ef89
[FBDevBackend] Set `format` in constructor
piranna Nov 20, 2018
851ffb2
[FBDevBackend][fix] Wrongly copy&pasted variable
piranna Nov 20, 2018
4940a7b
Merge branch 'master' of github.com:ventrata/node-canvas into framebu…
piranna Nov 28, 2018
ad2ddc0
[FbDev] Set default FbDev device as constant
piranna Nov 28, 2018
3e4f681
[FbDev] Move initialization of framebuffer device to `initFbDev()` me…
piranna Nov 28, 2018
cf99d46
[FbDev] Allow to define framebuffer device from `Canvas` constructor
piranna Nov 28, 2018
5cc8631
[FbDev] Don't regenerate surface on creation for non-standard color m…
piranna Nov 28, 2018
9a583f3
[FbDev] Don't regenerate surface on creation to define the width and …
piranna Nov 28, 2018
5838252
[FbDev][fix] Set framebuffer dimensions if specified
piranna Nov 28, 2018
848ab2e
[Backend] Use default arguments to remove duplicated constructor
piranna Dec 1, 2018
ffaac6b
[Backend] Add async method `waitVSync()`
piranna Dec 6, 2018
db2878f
Merge branch 'waitVSync' into FbDev_vsync
piranna Dec 6, 2018
c2e07fe
[FbDevBackend] Add support for framebuffer native VSync
piranna Dec 6, 2018
b394d31
[Backend] `swapBuffers()` method
piranna Dec 6, 2018
d617198
Merge branch 'doubleBuffer' into FbDev_vsync
piranna Dec 6, 2018
3618b40
[FbDevBackend] Support for optional double buffering (disabled by def…
piranna Dec 7, 2018
995a3f3
[FbDevBackend] Allow to enable double buffering from Javascript
piranna Dec 7, 2018
0e8be22
clean-up
piranna Dec 7, 2018
81fa69f
[FbDev] Show used pixel format in `simple_fbdev` example
piranna Dec 7, 2018
b79795d
[Backend] Made `destroySurface()` method virtual
piranna Dec 8, 2018
0778ed8
[FbDevBackend] Made `copyBackBuffer()` copy only screen size memory
piranna Dec 8, 2018
9f183c3
[FbDevBackend] Add `destroySurface()` that free in-memory buffer
piranna Dec 8, 2018
73b4b4d
[FbDevBackend] Replaced `forceUseCopyBuffer` for lazy checking of pan…
piranna Dec 8, 2018
6864325
[FbDevBackend] Added support for 24 bits framebuffers
piranna Dec 10, 2018
6bf6f1e
[FbDev] Replaced `useCopyBackBuffer` for `useFlipPages` for readibility
piranna Dec 10, 2018
9c97438
[FbDevBackend] Use `calloc()` to clean data at in-memory buffer
piranna Dec 10, 2018
8b8edd2
[Backends] Don't return `cairo_surface_t` objects in `createSurface()`
piranna Dec 13, 2018
71ee4c1
Merge branch 'protected_surfaces' into FbDev_vsync
piranna Dec 13, 2018
c21b8a5
[FbDevBackend] Don't return surface in `createSurface()`
piranna Dec 13, 2018
1c8cdea
[FbDevBackend][fix] Use pages flipping if driver supports vertical pa…
piranna Dec 13, 2018
b50fe3e
[FbDevBackend] Prevent double free'ing of back buffer memory
piranna Dec 13, 2018
96383b1
[FbDevBackend] Clean-up & improved code readibility
piranna Dec 13, 2018
f07cba4
[FbDevBackend] `mmap()` graphic memory on `createSurface()` & code cl…
piranna Dec 14, 2018
b0f81d7
[FbDevBackend] Option to enable flip buffers (disabled by default)
piranna Dec 15, 2018
e90b95c
[FbDevBackend][fix] Reset vertical panning before creating surface
piranna Dec 15, 2018
d737842
[FbDevBackend][fix] Use `swapBuffers()` always for 24 bits images
piranna Dec 15, 2018
a183067
[FbDevBackend] Code clean-up, better readibility
piranna Dec 15, 2018
a0fd140
Merge remote-tracking branch 'Automattic/master' into FbDev
piranna Dec 24, 2018
6a22cb2
Fixed documentation
piranna Dec 24, 2018
6c2d65d
Merge remote-tracking branch 'Automattic/master' into waitVSync
piranna Dec 24, 2018
ff8b503
Merge remote-tracking branch 'Automattic/master' into FbDev
piranna Mar 21, 2020
bfb4f1d
Fixes after merge
piranna Mar 21, 2020
b5f5dd0
Fixed linting
piranna Mar 21, 2020
64fb2e5
Isolated `lint` script
piranna Mar 21, 2020
45021a7
Throw exception for unknown canvas type instead create `Image` by def…
piranna Mar 21, 2020
601a415
Updated dependencies
piranna Mar 21, 2020
f7d3a76
Merge remote-tracking branch 'Automattic/master' into doubleBuffer
piranna Mar 21, 2020
3978af3
Moved screen-only `swapBuffers()` method to isolated `ScreenBuffer` c…
piranna Mar 21, 2020
6d8c0d2
Merge branch 'waitVSync' into doubleBuffer
piranna Mar 21, 2020
8e24861
Moved screens-only `waitVSync` method to `ScreenBackend` abstract class
piranna Mar 21, 2020
7b8f402
Merge branch 'FbDev' into FbDev_vsync
piranna Mar 21, 2020
aa3a6ae
Fixes after merge
piranna Mar 21, 2020
64fe34b
Merge branch 'doubleBuffer' into FbDev_vsync
piranna Mar 21, 2020
3023b36
Fixes after merge
piranna Mar 21, 2020
fdf14bc
Remove unmaintained Node.js v6 and v8
piranna Mar 22, 2020
3f38854
Remove unmaintained Node.js v6 and v8
piranna Mar 22, 2020
efacea1
Merge remote-tracking branch 'Automattic/master' into doubleBuffer
piranna Oct 17, 2020
6fb4bb4
Merge remote-tracking branch 'Automattic/master' into FbDev
piranna Oct 17, 2020
974cf5d
Merge remote-tracking branch 'Automattic/master' into FbDev_vsync
piranna Oct 17, 2020
173a8e4
Update `devDependencies` to fix linting errors
piranna Oct 17, 2020
0688eff
Update `devDependencies` to fix linting errors
piranna Oct 17, 2020
144337d
Update `devDependencies` to fix linting errors
piranna Oct 17, 2020
6f7876a
Enable FbDev backend only on Linux
piranna Oct 17, 2020
81904df
Enable FbDev backend only on Linux
piranna Oct 17, 2020
1edad18
Merge branch 'FbDev' into FbDev_vsync
piranna Oct 18, 2020
2e54e21
Merge branch 'doubleBuffer' into FbDev_vsync
piranna Oct 18, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[Backend] Add async method waitVSync()
  • Loading branch information
piranna committed Dec 6, 2018
commit ffaac6b176fa5170a931b4a9f3b09041926f7a58
38 changes: 38 additions & 0 deletions src/backend/Backend.cc
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
#include "Backend.h"


using Nan::AsyncQueueWorker;
using Nan::AsyncWorker;
using Nan::Callback;


class WaitVSync: public AsyncWorker
{
public:
WaitVSync(Callback* callback, Backend* backend)
: AsyncWorker(callback, "Backend:WaitVSync")
, backend(backend)
{}

void Execute()
{
backend->waitVSync();
}

private:
Backend* backend;
};


Backend::Backend(string name, int width, int height)
: name(name)
, width(width)
Expand Down Expand Up @@ -97,6 +120,21 @@ bool Backend::isSurfaceValid(){
}


NAN_METHOD(Backend::waitVSync)
{
Backend* backend = Nan::ObjectWrap::Unwrap<Backend>(info.This());

Callback* callback = new Callback(info[0].As<v8::Function>());

AsyncQueueWorker(new WaitVSync(callback, backend));
}

void Backend::Initialize(Local<FunctionTemplate> ctor)
{
Nan::SetPrototypeMethod(ctor, "waitVSync", waitVSync);
}


BackendOperationNotAvailable::BackendOperationNotAvailable(Backend* backend,
string operation_name)
: backend(backend)
Expand Down
9 changes: 9 additions & 0 deletions src/backend/Backend.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,19 @@
class Canvas;

using namespace std;
using namespace v8;


class Backend : public Nan::ObjectWrap
{
friend class WaitVSync;

private:
const string name;
const char* error = NULL;

virtual void waitVSync(){};

protected:
int width;
int height;
Expand All @@ -31,6 +37,7 @@ class Backend : public Nan::ObjectWrap
Backend(string name, int width, int height);
static void init(const Nan::FunctionCallbackInfo<v8::Value> &info);
static Backend *construct(int width, int height){ return nullptr; }
static void Initialize(Local<FunctionTemplate> ctor);

public:
virtual ~Backend();
Expand Down Expand Up @@ -58,6 +65,8 @@ class Backend : public Nan::ObjectWrap

bool isSurfaceValid();
inline const char* getError(){ return error; }

static NAN_METHOD(waitVSync);
};


Expand Down