本文整理汇总了C++中cairo_surface_flush函数的典型用法代码示例。如果您正苦于以下问题:C++ cairo_surface_flush函数的具体用法?C++ cairo_surface_flush怎么用?C++ cairo_surface_flush使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了cairo_surface_flush函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cairo_set_source_rgba
void CairoFont::CairoFontTexture::Clear(Vector<4,float> color) {
clearcol = color;
cairo_set_source_rgba (cr, color[0], color[1], color[2], color[3]);
cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
cairo_paint(cr);
cairo_surface_flush(surface);
FireChangedEvent(0, 0, width, height);
}
开发者ID:OpenEngineDK,项目名称:extensions-CairoResource,代码行数:8,代码来源:CairoFont.cpp
示例2: _cairo_surface_subsurface_flush
static cairo_status_t
_cairo_surface_subsurface_flush (void *abstract_surface)
{
cairo_surface_subsurface_t *surface = abstract_surface;
cairo_surface_flush (surface->target);
return surface->target->status;
}
开发者ID:CODECOMMUNITY,项目名称:cairo,代码行数:8,代码来源:cairo-surface-subsurface.c
示例3: _x11_backwin_end_paint
static void _x11_backwin_end_paint(
struct _x11_backwin *self, cairo_t *cr)
{
assert(self->managed);
cairo_destroy(cr);
cairo_surface_flush(self->surface);
}
开发者ID:tomnotcat,项目名称:mume,代码行数:8,代码来源:mume-x11-backwin.c
示例4: DrawVKWindow
void DrawVKWindow(VKWindow* vkWindow)
{
int i;
int iPos;
cairo_t *cr;
FcitxVKState *vkstate = vkWindow->owner;
VKS *vks = vkstate->vks;
FcitxConfigColor *fontColor = InvokeVaArgs(vkstate->owner, FCITX_CLASSIC_UI,
GETKEYBOARDFONTCOLOR);
char **font = InvokeVaArgs(vkstate->owner, FCITX_CLASSIC_UI, GETFONT);
if (!fontColor || !font) {
fontColor = &blackColor;
font = &vkWindow->defaultFont;
}
cr = cairo_create(vkWindow->surface);
cairo_surface_t* vkimage = LoadVKImage(vkWindow);
cairo_set_source_surface(cr, vkimage, 0, 0);
cairo_paint(cr);
/* 显示字符 */
/* 名称 */
OutputString(cr, vks[vkstate->iCurrentVK].strName, *font, vkWindow->fontSize, false , (VK_WINDOW_WIDTH - StringWidth(vks[vkstate->iCurrentVK].strName, *font, vkWindow->fontSize, false)) / 2, 6, fontColor);
/* 第一排 */
iPos = 13;
for (i = 0; i < 13; i++) {
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][1], *font, vkWindow->fontSize, false, iPos, 27, fontColor);
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][0], *font, vkWindow->fontSize, false, iPos - 5, 40, fontColor);
iPos += 24;
}
/* 第二排 */
iPos = 48;
for (i = 13; i < 26; i++) {
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][1], *font, vkWindow->fontSize, false, iPos, 55, fontColor);
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][0], *font, vkWindow->fontSize, false, iPos - 5, 68, fontColor);
iPos += 24;
}
/* 第三排 */
iPos = 55;
for (i = 26; i < 37; i++) {
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][1], *font, vkWindow->fontSize, false, iPos, 83, fontColor);
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][0], *font, vkWindow->fontSize, false, iPos - 5, 96, fontColor);
iPos += 24;
}
/* 第四排 */
iPos = 72;
for (i = 37; i < 47; i++) {
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][1], *font, vkWindow->fontSize, false, iPos, 111, fontColor);
OutputString(cr, vks[vkstate->iCurrentVK].strSymbol[i][0], *font, vkWindow->fontSize, false, iPos - 5, 124, fontColor);
iPos += 24;
}
cairo_destroy(cr);
cairo_surface_flush(vkWindow->surface);
}
开发者ID:areslp,项目名称:fcitx,代码行数:58,代码来源:vk.c
示例5: na_tray_child_expose_event
na_tray_child_expose_event (GtkWidget *widget,
GdkEventExpose *event)
#endif
{
NaTrayChild *child = NA_TRAY_CHILD (widget);
GdkWindow *window = gtk_widget_get_window (widget);
if (na_tray_child_has_alpha (child))
{
/* Clear to transparent */
#if !GTK_CHECK_VERSION (3, 0, 0)
cairo_t *cr = gdk_cairo_create (window);
#endif
cairo_set_source_rgba (cr, 0, 0, 0, 0);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
#if GTK_CHECK_VERSION (3, 0, 0)
cairo_paint (cr);
#else
gdk_cairo_region (cr, event->region);
cairo_fill (cr);
cairo_destroy (cr);
#endif
}
else if (child->parent_relative_bg)
{
/* Clear to parent-relative pixmap */
#if GTK_CHECK_VERSION (3, 0, 0)
GdkWindow *window;
cairo_surface_t *target;
GdkRectangle clip_rect;
window = gtk_widget_get_window (widget);
target = cairo_get_group_target (cr);
gdk_cairo_get_clip_rectangle (cr, &clip_rect);
/* Clear to parent-relative pixmap
* We need to use direct X access here because GDK doesn't know about
* the parent relative pixmap. */
cairo_surface_flush (target);
XClearArea (GDK_WINDOW_XDISPLAY (window),
GDK_WINDOW_XID (window),
clip_rect.x, clip_rect.y,
clip_rect.width, clip_rect.height,
False);
cairo_surface_mark_dirty_rectangle (target,
clip_rect.x, clip_rect.y,
clip_rect.width, clip_rect.height);
#else
gdk_window_clear_area (window,
event->area.x, event->area.y,
event->area.width, event->area.height);
#endif
}
return FALSE;
}
开发者ID:ryandoyle,项目名称:mate-panel,代码行数:58,代码来源:na-tray-child.c
示例6: surface_flush
static PyObject *
surface_flush (PycairoSurface *o)
{
cairo_surface_flush (o->surface);
if (Pycairo_Check_Status (cairo_surface_status(o->surface)))
return NULL;
Py_RETURN_NONE;
}
开发者ID:curaloucura,项目名称:enso,代码行数:9,代码来源:pycairo-surface.c
示例7: surface_flush
static PyObject *
surface_flush (PycairoSurface *o)
{
Py_BEGIN_ALLOW_THREADS
cairo_surface_flush (o->surface);
Py_END_ALLOW_THREADS
RETURN_NULL_IF_CAIRO_SURFACE_ERROR(o->surface);
Py_RETURN_NONE;
}
开发者ID:bdon,项目名称:pycairo,代码行数:9,代码来源:pycairo-surface.c
示例8: drawPointerText
void drawPointerText(){
cairo_surface_t *surface;
cairo_t *cr;
const unsigned char* surfaceData;
if (viewType == TWO_D){
xX = 1.4, yY = Ypointer + 0.1, zZ = 0;
}
else {
xX = Xpointer - 0.1, yY = 0.45, zZ = 0;
}
if (viewType == TWO_D){
sprintf(textToRender, " %d Hz", (int)(storedFreq * hzStep));
}
else {
sprintf(textToRender, "%d Hz %f dB", (int)(storedFreq * hzStep), storedIntensity);
}
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, 128, 32);
cr = cairo_create (surface);
cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
cairo_set_font_size (cr, 10.0);
cairo_move_to (cr, 0, 16);
cairo_show_text (cr, textToRender);
cairo_surface_flush(surface);
surfaceData = cairo_image_surface_get_data (surface);
unsigned Texture = 0;
glGenTextures(1, &Texture);
glBindTexture(GL_TEXTURE_2D, Texture);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, cairo_image_surface_get_width(surface), cairo_image_surface_get_height(surface), 0, GL_BGRA, GL_UNSIGNED_BYTE, surfaceData);
glBegin(GL_QUADS);
glColor3f(1, 1, 1);
glTexCoord2d(0, 0); glVertex3d(xX, yY, 0.01);
glTexCoord2d(1, 0); glVertex3d(xX+0.3, yY, 0.01);
glTexCoord2d(1, 1); glVertex3d(xX+0.3, yY-0.15, 0.01);
glTexCoord2d(0, 1); glVertex3d(xX, yY-0.15, 0.01);
glEnd();
glDeleteTextures(1, &Texture);
cairo_destroy (cr);
cairo_surface_destroy (surface);
if (viewType == TWO_D){
yY += y_2d/10;
}
else {
xX += x/10;
}
}
开发者ID:sgrady2,项目名称:C-VtkVis,代码行数:56,代码来源:scale.c
示例9: glide_window_export_pdf_real
static void
glide_window_export_pdf_real (GlideWindow *w,
const gchar *filename)
{
cairo_surface_t *pdf_surface;
cairo_t *cr;
gint width, height;
gint o_slide;
int i = 0;
glide_window_fullscreen_stage (w);
while (g_main_context_pending (NULL))
g_main_context_iteration (NULL, TRUE);
width = clutter_actor_get_width (w->priv->stage);
height = clutter_actor_get_height (w->priv->stage);
pdf_surface = cairo_pdf_surface_create (filename, width, height);
cr = cairo_create (pdf_surface);
o_slide = glide_stage_manager_get_current_slide (w->priv->manager);
for (i = 0; i < glide_document_get_n_slides (w->priv->document); i++)
{
guchar *pixels;
guchar *p;
GdkPixbuf *pb;
glide_stage_manager_set_current_slide (w->priv->manager, i);
pixels = clutter_stage_read_pixels (CLUTTER_STAGE (w->priv->stage), 0, 0, width, height);
for (p = pixels + width * height * 4; p > pixels; p -= 3)
*(--p) = 255;
pb = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE,
8, width, height, width * 4,
(GdkPixbufDestroyNotify) g_free,
NULL);
gdk_cairo_set_source_pixbuf (cr, pb, 0, 0);
cairo_rectangle (cr, 0, 0, width, height);
cairo_fill (cr);
cairo_surface_show_page (pdf_surface);
g_object_unref (G_OBJECT (pb));
}
cairo_surface_flush (pdf_surface);
cairo_destroy (cr);
cairo_surface_destroy (pdf_surface);
glide_window_unfullscreen_stage (w);
glide_stage_manager_set_current_slide (w->priv->manager, o_slide);
}
开发者ID:racarr,项目名称:Glide,代码行数:56,代码来源:glide-window.c
示例10: main
int
main(int argc, char** argv) {
cairo_surface_t *sfc;
cairo_t *ctx;
int x, y;
struct timespec ts = {0, 500000000};
int running;
x = y = 0;
sfc = cairo_create_x11_surface(&x, &y);
ctx = cairo_create(sfc);
cairo_set_antialias(ctx, CAIRO_ANTIALIAS_NONE);
mesh_t* m = mesh_create(x, y);
for (running = 1; running;) {
cairo_push_group(ctx);
cairo_set_source_rgb(ctx, 0.1, 0.1, 0.1);
cairo_paint(ctx);
mesh_draw(ctx, m);
cairo_pop_group_to_source(ctx);
cairo_paint(ctx);
cairo_surface_flush(sfc);
int event=0;
switch (event=cairo_check_event(sfc, 0)) {
case 0xff53: // right cursor
break;
case 0xff51: // left cursor
break;
case 0xff1b: // Esc
case -1: // left mouse button
running = 0;
break;
}
nanosleep(&ts, NULL);
}
mesh_free(m);
cairo_destroy(ctx);
cairo_close_x11_surface(sfc);
return 0;
}
开发者ID:peko,项目名称:tttm2,代码行数:56,代码来源:test_cairo.c
示例11: widgetDraw
void widgetDraw(widget *self)
{
int i;
// See if we need to be redrawn
if (self->needsRedraw)
{
void *bits = cairo_image_surface_get_data(cairo_get_target(self->cr));
self->needsRedraw = false;
// Mark the texture as needing uploading
self->textureNeedsUploading = true;
// Clear the current context
cairo_set_operator(self->cr, CAIRO_OPERATOR_SOURCE);
cairo_set_source_rgba(self->cr, 0.0, 0.0, 0.0, 0.0);
cairo_paint(self->cr);
// Restore the compositing operator back to the default
cairo_set_operator(self->cr, CAIRO_OPERATOR_OVER);
// Save (push) the current context
cairo_save(self->cr);
// Redaw ourself
widgetDoDraw(self);
// Restore the context
cairo_restore(self->cr);
// Update the texture if widgetEndGL has not done it for us
if (self->textureNeedsUploading)
{
// Flush the cairo surface to ensure that all drawing is completed
cairo_surface_flush(cairo_get_target(self->cr));
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, self->textureId);
glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA, self->size.x,
self->size.y, 0, GL_BGRA, GL_UNSIGNED_BYTE, bits);
self->textureNeedsUploading = false;
}
}
// Draw our children (even if we did not need redrawing our children might)
for (i = 0; i < vectorSize(self->children); i++)
{
widget *child = vectorAt(self->children, i);
// Ask the child to re-draw itself
widgetDraw(child);
}
}
开发者ID:BG1,项目名称:warzone2100,代码行数:56,代码来源:widget.cpp
示例12: start
void start()
{
cairo_surface_t* cairo_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, m_width, m_height);
cairo_t* cr = cairo_create(cairo_surface);
cairo_set_source_rgba(cr, 0.0, 0.0, 0.0, 0.0);
cairo_paint(cr);
PangoFontDescription *font_description = pango_font_description_new();
pango_font_description_set_family(font_description, m_font.Family.c_str());
pango_font_description_set_style(font_description, m_font.Style);
pango_font_description_set_weight(font_description, m_font.Weight);
pango_font_description_set_variant(font_description, m_font.Variant);
pango_font_description_set_size(font_description, m_font.Size * PANGO_SCALE);
PangoLayout *layout = pango_cairo_create_layout(cr);
pango_layout_set_font_description(layout, font_description);
pango_layout_set_text(layout, m_text_file.file_content_p(), -1);
unsigned char* color = m_font.ColorRGB; // shortcut
cairo_set_source_rgb(cr, color[0] / 255.0, color[1] / 255.0, color[2] / 255.0);
cairo_move_to(cr, 0.0, 0.0);
pango_cairo_show_layout(cr, layout);
// To texture
{
cairo_surface_flush(cairo_surface);
std::vector<unsigned char> rgba_data;
rgba_from_cairo_ARGB32(
cairo_image_surface_get_data(cairo_surface)
, m_width
, m_height
, cairo_image_surface_get_stride(cairo_surface)
, rgba_data
);
glPixelStorei ( GL_UNPACK_ALIGNMENT, 1 );
m_texture.bind();
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_width, m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, &(rgba_data[0]));
assert(glGetError() == GL_NO_ERROR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
assert(glGetError() == GL_NO_ERROR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
assert(glGetError() == GL_NO_ERROR);
}
g_object_unref(layout);
pango_font_description_free(font_description);
cairo_destroy(cr);
cairo_surface_destroy(cairo_surface);
}
开发者ID:alyssonbrito,项目名称:linux-opengl-player,代码行数:55,代码来源:text_player.cpp
示例13: ppb_browser_font_trusted_draw_text_at
PP_Bool
ppb_browser_font_trusted_draw_text_at(PP_Resource font, PP_Resource image_data,
const struct PP_BrowserFont_Trusted_TextRun *text,
const struct PP_Point *position, uint32_t color,
const struct PP_Rect *clip, PP_Bool image_data_is_opaque)
{
(void)image_data_is_opaque; // TODO: is it worth implementing?
struct pp_browser_font_s *bf = pp_resource_acquire(font, PP_RESOURCE_BROWSER_FONT);
if (!bf)
return PP_FALSE;
struct pp_image_data_s *id = pp_resource_acquire(image_data, PP_RESOURCE_IMAGE_DATA);
if (!id) {
pp_resource_release(font);
return PP_FALSE;
}
cairo_t *cr = cairo_create(id->cairo_surf);
if (clip) {
cairo_rectangle(cr, clip->point.x, clip->point.y, clip->size.width, clip->size.height);
cairo_clip(cr);
}
PangoFontMetrics *m = pango_font_get_metrics(bf->font, NULL);
int32_t ascent = pango_font_metrics_get_ascent(m) / PANGO_SCALE;
cairo_surface_mark_dirty(id->cairo_surf);
if (position)
cairo_move_to(cr, position->x, position->y - ascent);
else
cairo_move_to(cr, 0, 0);
pango_font_metrics_unref(m);
cairo_set_source_rgba(cr, ((color >> 16) & 0xffu) / 255.0,
((color >> 8) & 0xffu) / 255.0,
((color >> 0) & 0xffu) / 255.0,
((color >> 24) & 0xffu) / 255.0);
PangoLayout *layout = pango_cairo_create_layout(cr);
uint32_t len = 0;
const char *s = "";
if (text->text.type == PP_VARTYPE_STRING)
s = ppb_var_var_to_utf8(text->text, &len);
// TODO: factor into rtl direction
pango_layout_set_font_description(layout, bf->font_desc);
pango_layout_set_text(layout, s, len);
pango_cairo_layout_path(cr, layout);
cairo_fill(cr);
g_object_unref(layout);
cairo_surface_flush(id->cairo_surf);
cairo_destroy(cr);
pp_resource_release(font);
pp_resource_release(image_data);
return PP_FALSE;
}
开发者ID:evilpie,项目名称:freshplayerplugin,代码行数:55,代码来源:ppb_browser_font_trusted.c
示例14: gt_graphics_cairo_save_to_file
int gt_graphics_cairo_save_to_file(const GtGraphics *gg, const char *filename,
GtError *err)
{
const GtGraphicsCairo *g = (const GtGraphicsCairo*) gg;
cairo_surface_t *bgsurf = NULL;
cairo_t *bgc = NULL;
cairo_status_t rval;
GtFile *outfile;
gt_error_check(err);
gt_assert(g && filename);
/* do nothing if no surface was created */
if (g->from_context)
return 0;
switch (g->type)
{
case GT_GRAPHICS_PNG:
/* blend rendered image with background color */
bgsurf = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, g->width,
g->height);
bgc = cairo_create(bgsurf);
cairo_set_source_rgba(bgc, g->bg_color.red, g->bg_color.green,
g->bg_color.blue, g->bg_color.alpha);
cairo_paint(bgc);
cairo_set_source_surface(bgc, g->surf, 0, 0);
cairo_paint(bgc);
rval = cairo_surface_write_to_png(bgsurf, filename);
gt_assert(rval == CAIRO_STATUS_SUCCESS ||
rval == CAIRO_STATUS_WRITE_ERROR);
if (rval == CAIRO_STATUS_WRITE_ERROR)
{
cairo_destroy(bgc);
cairo_surface_destroy(bgsurf);
gt_error_set(err, "an I/O error occurred while attempting "
"to write image file \"%s\"", filename);
return -1;
}
cairo_destroy(bgc);
cairo_surface_destroy(bgsurf);
break;
default:
cairo_show_page(g->cr);
cairo_surface_flush(g->surf);
cairo_surface_finish(g->surf);
outfile = gt_file_open(GT_FILE_MODE_UNCOMPRESSED, filename, "w+", err);
if (outfile)
{
gt_file_xwrite(outfile, gt_str_get_mem(g->outbuf),
gt_str_length(g->outbuf));
gt_file_delete(outfile);
} else return -1;
break;
}
return 0;
}
开发者ID:simongog,项目名称:genometools,代码行数:55,代码来源:graphics_cairo.c
示例15: window_get_pixel_color
int window_get_pixel_color(struct OsecpuWindow* window, int x, int y)
{
// XXX: 必ずARGB32形式であると仮定して処理が書いてある
// 透過はされてないはずなので上位8bitは必ず0になるようにする
const unsigned char* surface_data;
int width;
width = cairo_image_surface_get_width(window->surface);
cairo_surface_flush(window->surface);
surface_data = cairo_image_surface_get_data(window->surface);
return *((int*)surface_data + x + y*width) & 0x00ffffff;
}
开发者ID:int2xx9,项目名称:osecpu-b32-interpreter,代码行数:11,代码来源:window.c
示例16: cairo_surface_flush
void TileSet::save(const std::wstring filename)
{
FILE *file;
errno_t err;
if ((err = _wfopen_s(&file, filename.c_str(), L"wb")) == 0)
{
cairo_surface_flush(surf);
cairo_surface_write_to_png_stream(surf, cairo_write_to_file_cb, file);
fclose(file);
}
}
开发者ID:sebesbal,项目名称:simciv2,代码行数:11,代码来源:icongen.cpp
示例17: towel_window_render_time
static void
towel_window_render_time(towel_window_t *win, int timer)
{
cairo_surface_t *buf;
cairo_t *cr;
cairo_text_extents_t extents;
int min = timer / 60;
int sec = timer % 60;
char time_str[6];
int x, y, w, h;
buf = cairo_surface_create_similar(win->cs, CAIRO_CONTENT_COLOR,
win->width, win->height);
cr = cairo_create(buf);
towel_window_set_background_color(win, cr);
snprintf(time_str, sizeof(time_str), "%02d:%02d", min, sec);
cairo_select_font_face(cr, "Serif",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_BOLD);
cairo_set_font_size(cr, 120);
cairo_text_extents(cr, "00:00", &extents);
x = (win->width - extents.width)/2;
y = (win->height - extents.height)/2+6;
w = extents.width;
h = extents.height;
cairo_set_source_rgb(cr, .1, .1, .1);
cairo_move_to(cr, x+2, y+2);
cairo_show_text(cr, time_str);
cairo_set_source_rgb(cr, 1, 1, 1);
cairo_move_to(cr, x, y);
cairo_show_text(cr, time_str);
cairo_surface_flush(buf);
cairo_set_source_surface(win->cr, buf, 0, 0);
cairo_paint(win->cr);
cairo_destroy(cr);
cairo_surface_destroy(buf);
cairo_surface_flush(win->cs);
}
开发者ID:kanru,项目名称:towel,代码行数:41,代码来源:towel.c
示例18: cairo_surface_flush
void ofCairoRenderer::close(){
if(surface){
cairo_surface_flush(surface);
cairo_surface_finish(surface);
cairo_surface_destroy(surface);
surface = NULL;
}
if(cr){
cairo_destroy(cr);
cr = NULL;
}
}
开发者ID:echa,项目名称:libopenframeworks,代码行数:12,代码来源:ofCairoRenderer.cpp
示例19: seed_cairo_surface_flush
static SeedValue
seed_cairo_surface_flush (SeedContext ctx,
SeedObject function,
SeedObject this_object,
gsize argument_count,
const SeedValue arguments[],
SeedException *exception)
{
CHECK_THIS();
cairo_surface_flush (seed_object_to_cairo_surface(ctx, this_object, exception));
return seed_make_undefined (ctx);
}
开发者ID:iRi-E,项目名称:GNOME-Seed,代码行数:12,代码来源:seed-cairo-surface.c
示例20: _cairo_boilerplate_xcb_finish_surface
static cairo_status_t
_cairo_boilerplate_xcb_finish_surface (cairo_surface_t *surface)
{
xcb_target_closure_t *xtc = cairo_surface_get_user_data (surface,
&xcb_closure_key);
xcb_generic_event_t *ev;
if (xtc->surface != NULL) {
cairo_t *cr;
cr = cairo_create (xtc->surface);
cairo_surface_set_device_offset (surface, 0, 0);
cairo_set_source_surface (cr, surface, 0, 0);
cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
cairo_paint (cr);
cairo_destroy (cr);
surface = xtc->surface;
}
cairo_surface_flush (surface);
if (cairo_surface_status (surface))
return cairo_surface_status (surface);
while ((ev = xcb_poll_for_event (xtc->c)) != NULL) {
cairo_status_t status = CAIRO_STATUS_SUCCESS;
if (ev->response_type == 0 /* trust me! */) {
xcb_generic_error_t *error = (xcb_generic_error_t *) ev;
#if XCB_GENERIC_ERROR_HAS_MAJOR_MINOR_CODES
fprintf (stderr,
"Detected error during xcb run: %d major=%d, minor=%d\n",
error->error_code, error->major_code, error->minor_code);
#else
fprintf (stderr,
"Detected error during xcb run: %d\n",
error->error_code);
#endif
free (error);
status = CAIRO_STATUS_WRITE_ERROR;
}
if (status)
return status;
}
if (xcb_connection_has_error (xtc->c))
return CAIRO_STATUS_WRITE_ERROR;
return CAIRO_STATUS_SUCCESS;
}
开发者ID:499940913,项目名称:moon,代码行数:53,代码来源:cairo-boilerplate-xcb.c
注:本文中的cairo_surface_flush函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论