fb-pool: Add setter for fb allocator
parent
411530b5da
commit
adef210252
|
@ -112,6 +112,8 @@ typedef bool (*nvnc_auth_fn)(const char* username, const char* password,
|
||||||
void* userdata);
|
void* userdata);
|
||||||
typedef void (*nvnc_cut_text_fn)(struct nvnc*, const char* text, uint32_t len);
|
typedef void (*nvnc_cut_text_fn)(struct nvnc*, const char* text, uint32_t len);
|
||||||
typedef void (*nvnc_fb_release_fn)(struct nvnc_fb*, void* context);
|
typedef void (*nvnc_fb_release_fn)(struct nvnc_fb*, void* context);
|
||||||
|
typedef struct nvnc_fb* (*nvnc_fb_alloc_fn)(uint16_t width, uint16_t height,
|
||||||
|
uint32_t format, uint16_t stride);
|
||||||
typedef void (*nvnc_cleanup_fn)(void* userdata);
|
typedef void (*nvnc_cleanup_fn)(void* userdata);
|
||||||
typedef void (*nvnc_log_fn)(const struct nvnc_log_data*, const char* message);
|
typedef void (*nvnc_log_fn)(const struct nvnc_log_data*, const char* message);
|
||||||
|
|
||||||
|
@ -176,6 +178,8 @@ struct nvnc_fb_pool* nvnc_fb_pool_new(uint16_t width, uint16_t height,
|
||||||
bool nvnc_fb_pool_resize(struct nvnc_fb_pool*, uint16_t width, uint16_t height,
|
bool nvnc_fb_pool_resize(struct nvnc_fb_pool*, uint16_t width, uint16_t height,
|
||||||
uint32_t fourcc_format, uint16_t stride);
|
uint32_t fourcc_format, uint16_t stride);
|
||||||
|
|
||||||
|
void nvnc_fb_pool_set_alloc_fn(struct nvnc_fb_pool*, nvnc_fb_alloc_fn);
|
||||||
|
|
||||||
void nvnc_fb_pool_ref(struct nvnc_fb_pool*);
|
void nvnc_fb_pool_ref(struct nvnc_fb_pool*);
|
||||||
void nvnc_fb_pool_unref(struct nvnc_fb_pool*);
|
void nvnc_fb_pool_unref(struct nvnc_fb_pool*);
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,8 @@ struct nvnc_fb_pool {
|
||||||
uint16_t height;
|
uint16_t height;
|
||||||
int32_t stride;
|
int32_t stride;
|
||||||
uint32_t fourcc_format;
|
uint32_t fourcc_format;
|
||||||
|
|
||||||
|
nvnc_fb_alloc_fn alloc_fn;
|
||||||
};
|
};
|
||||||
|
|
||||||
EXPORT
|
EXPORT
|
||||||
|
@ -57,6 +59,7 @@ struct nvnc_fb_pool* nvnc_fb_pool_new(uint16_t width, uint16_t height,
|
||||||
self->height = height;
|
self->height = height;
|
||||||
self->stride = stride;
|
self->stride = stride;
|
||||||
self->fourcc_format = fourcc_format;
|
self->fourcc_format = fourcc_format;
|
||||||
|
self->alloc_fn = nvnc_fb_new;
|
||||||
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -119,7 +122,7 @@ static void nvnc_fb_pool__on_fb_release(struct nvnc_fb* fb, void* userdata)
|
||||||
|
|
||||||
static struct nvnc_fb* nvnc_fb_pool__acquire_new(struct nvnc_fb_pool* self)
|
static struct nvnc_fb* nvnc_fb_pool__acquire_new(struct nvnc_fb_pool* self)
|
||||||
{
|
{
|
||||||
struct nvnc_fb* fb = nvnc_fb_new(self->width, self->height,
|
struct nvnc_fb* fb = self->alloc_fn(self->width, self->height,
|
||||||
self->fourcc_format, self->stride);
|
self->fourcc_format, self->stride);
|
||||||
if (!fb)
|
if (!fb)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -168,3 +171,9 @@ void nvnc_fb_pool_release(struct nvnc_fb_pool* self, struct nvnc_fb* fb)
|
||||||
item->fb = fb;
|
item->fb = fb;
|
||||||
TAILQ_INSERT_TAIL(&self->fbs, item, link);
|
TAILQ_INSERT_TAIL(&self->fbs, item, link);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EXPORT
|
||||||
|
void nvnc_fb_pool_set_alloc_fn(struct nvnc_fb_pool* self, nvnc_fb_alloc_fn fn)
|
||||||
|
{
|
||||||
|
self->alloc_fn = fn;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue