本文整理汇总了C++中gtk_widget_set_double_buffered函数的典型用法代码示例。如果您正苦于以下问题:C++ gtk_widget_set_double_buffered函数的具体用法?C++ gtk_widget_set_double_buffered怎么用?C++ gtk_widget_set_double_buffered使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了gtk_widget_set_double_buffered函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
g_signal_connect(window, "expose-event",
G_CALLBACK(on_expose_event), NULL);
g_signal_connect(window, "destroy",
G_CALLBACK(on_destroy), NULL);
g_signal_connect(window, "configure-event",
G_CALLBACK(on_configure_event), NULL);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_window_set_title(GTK_WINDOW(window), "cairo_gl");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
gtk_widget_set_app_paintable(window, TRUE);
gtk_widget_set_double_buffered(window, FALSE);
gtk_widget_show_all(window);
pixmap = gdk_pixmap_new(window->window,400,300,-1);
//window_surface=create_source_surface_for_widget(window);
gtk_main();
return 0;
}
示例2: image_view_instance_init
/* Object initialization function for the image view */
static void
image_view_instance_init (ImageView *view)
{
ImageViewPrivate *priv;
priv = g_new0 (ImageViewPrivate, 1);
view->priv = priv;
GTK_WIDGET_UNSET_FLAGS (view, GTK_NO_WINDOW);
GTK_WIDGET_SET_FLAGS (view, GTK_CAN_FOCUS);
priv->pixbuf = NULL;
priv->zoomx = priv->zoomy = 1.0;
priv->hadj = NULL;
priv->vadj = NULL;
priv->uta = NULL;
/* Defaults for rendering */
priv->interp_type = GDK_INTERP_BILINEAR;
priv->check_type = CHECK_TYPE_MIDTONE;
priv->check_size = CHECK_SIZE_LARGE;
priv->dither = GDK_RGB_DITHER_MAX;
/* We don't want to be double-buffered as we are SuperSmart(tm) */
gtk_widget_set_double_buffered (GTK_WIDGET (view), FALSE);
}
示例3: gtk_drawing_area_new
void Viewport::create(Window &parent, unsigned x, unsigned y, unsigned width, unsigned height) {
object->widget = gtk_drawing_area_new();
gtk_widget_set_double_buffered(object->widget, false);
gtk_widget_set_size_request(object->widget, width, height);
gtk_fixed_put(GTK_FIXED(parent.object->formContainer), object->widget, x, y);
gtk_widget_show(object->widget);
}
示例4: gui_init
void gui_init(dt_lib_module_t *self)
{
/* initialize ui widgets */
dt_lib_ratings_t *d = (dt_lib_ratings_t *)g_malloc0(sizeof(dt_lib_ratings_t));
self->data = (void *)d;
/* create a centered drawing area within alignment */
self->widget = gtk_alignment_new(0.5, 0.5, 0, 0);
GtkWidget *da = gtk_drawing_area_new();
gtk_widget_set_events(da, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK
| GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
| GDK_STRUCTURE_MASK);
/* connect callbacks */
gtk_widget_set_double_buffered(da, FALSE);
gtk_widget_set_app_paintable(da, TRUE);
g_signal_connect(G_OBJECT(da), "expose-event", G_CALLBACK(_lib_ratings_expose_callback), self);
g_signal_connect(G_OBJECT(da), "button-press-event", G_CALLBACK(_lib_ratings_button_press_callback), self);
g_signal_connect(G_OBJECT(da), "button-release-event", G_CALLBACK(_lib_ratings_button_release_callback),
self);
g_signal_connect(G_OBJECT(da), "motion-notify-event", G_CALLBACK(_lib_ratings_motion_notify_callback), self);
g_signal_connect(G_OBJECT(da), "leave-notify-event", G_CALLBACK(_lib_ratings_leave_notify_callback), self);
/* set size of navigation draw area */
gtk_widget_set_size_request(da, (STAR_SIZE * 6) + (STAR_SPACING * 5), STAR_SIZE);
gtk_container_add(GTK_CONTAINER(self->widget), da);
}
示例5: gui_display_init
/**
* @brief Init display
*
* @param widget widget to assiociate with display
* @param display instance of gui_display to initialize
*
* @retval WG_SUCCESS
* @retval WG_FAILURE
*/
wg_status
gui_display_init(GtkWidget *widget, Gui_display *display)
{
CHECK_FOR_NULL_PARAM(widget);
CHECK_FOR_NULL_PARAM(display);
memset(display, '\0', sizeof (Gui_display));
display->widget = widget;
list_init(&display->lines);
display->widget_width = gtk_widget_get_allocated_width(display->widget);
display->widget_height = gtk_widget_get_allocated_height(display->widget);
gtk_widget_set_app_paintable(display->widget, TRUE);
gtk_widget_set_double_buffered(display->widget, TRUE);
g_signal_connect(display->widget, "draw",
G_CALLBACK(on_expose), display);
display->enable_dragging = 0;
display->is_dragging = 0;
return WG_SUCCESS;
}
示例6: gtk_widget_set_double_buffered
void
GtkOvgGlue::prepDrawingArea(GtkWidget *drawing_area)
{
GNASH_REPORT_FUNCTION;
_drawing_area = drawing_area;
// Disable double buffering, otherwise gtk tries to update widget
// contents from its internal offscreen buffer at the end of expose event
gtk_widget_set_double_buffered(_drawing_area, FALSE);
// EGL needs to be bound to the type of client. The possible
// clients are OpenVG, OpenGLES1, and OpenGLES2.
if (_device->getType() == renderer::GnashDevice::EGL) {
renderer::EGLDevice *egl = (renderer::EGLDevice*)_device.get();
egl->bindClient(renderer::GnashDevice::OPENVG);
}
// Attach the window to the low level device
long xid = GDK_WINDOW_XID(gtk_widget_get_window(drawing_area));
_device->attachWindow(static_cast<renderer::GnashDevice::native_window_t>
(xid));
//vgLoadIdentity();
#if 0
renderer::EGLDevice *egl = (renderer::EGLDevice*)_device.get();
egl->printEGLSurface(eglGetCurrentSurface(EGL_DRAW));
egl->printEGLContext(eglGetCurrentContext());
#endif
}
示例7: mtx_stripchart_init
/*!
\brief Initializes the chart attributes to sane defaults
\param chart is the pointer to the chart object
*/
void mtx_stripchart_init (MtxStripChart *chart)
{
/* The events the chart receives
* Need events for button press/release AND motion EVEN THOUGH
* we don't have a motion handler defined. It's required for the
* dash designer to do drag and move placement
*/
MtxStripChartPrivate *priv = MTX_STRIPCHART_GET_PRIVATE(chart);
gtk_widget_add_events (GTK_WIDGET (chart),GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK |
GDK_POINTER_MOTION_MASK |
GDK_ENTER_NOTIFY_MASK |
GDK_LEAVE_NOTIFY_MASK);
gtk_widget_set_double_buffered (GTK_WIDGET(chart), FALSE);
priv->num_traces = 0;
priv->w = 130;
priv->h = 20;
priv->justification = GTK_JUSTIFY_RIGHT;
priv->font = g_strdup("Bitstream Vera Sans");
priv->traces = g_array_new(FALSE,TRUE,sizeof(MtxStripChartTrace *));
mtx_stripchart_init_colors(chart);
/* if (GTK_WIDGET_REALIZED(chart))
mtx_stripchart_redraw (chart);
*/
}
示例8: meta_image_window_new
MetaImageWindow*
meta_image_window_new (Display *xdisplay,
int screen_number,
int max_width,
int max_height)
{
MetaImageWindow *iw;
GdkDisplay *gdisplay;
GdkScreen *gscreen;
iw = g_new (MetaImageWindow, 1);
iw->window = gtk_window_new (GTK_WINDOW_POPUP);
gdisplay = gdk_x11_lookup_xdisplay (xdisplay);
gscreen = gdk_display_get_screen (gdisplay, screen_number);
gtk_window_set_screen (GTK_WINDOW (iw->window), gscreen);
gtk_widget_realize (iw->window);
iw->pixmap = gdk_pixmap_new (gtk_widget_get_window (iw->window),
max_width, max_height,
-1);
gtk_widget_set_size_request (iw->window, 1, 1);
gtk_widget_set_double_buffered (iw->window, FALSE);
gtk_widget_set_app_paintable (iw->window, TRUE);
return iw;
}
示例9: gtk_gl_enable
void
gtk_gl_enable (GtkWidget *widget)
{
GdkScreen *screen;
GdkVisual *visual;
Display *xdisplay;
XVisualInfo *xvi;
gint xscreen;
GtkGLContext *gtkgc;
gint attributes[] ={GLX_RGBA,
GLX_RED_SIZE, 8,
GLX_GREEN_SIZE, 8,
GLX_BLUE_SIZE, 8,
GLX_DEPTH_SIZE,24,
GLX_DOUBLEBUFFER,
None};
gtk_widget_set_app_paintable (widget, TRUE);
gtk_widget_set_double_buffered (widget, FALSE);
gtkgc = g_slice_new0 (GtkGLContext);
xdisplay = gdk_x11_get_default_xdisplay ();
xscreen = gdk_x11_get_default_screen ();
g_return_if_fail (NULL != (xvi = glXChooseVisual (xdisplay, xscreen, attributes)));
screen = gtk_widget_get_screen (widget);
g_return_if_fail (NULL != (visual = gdk_x11_screen_lookup_visual (screen, xvi->visualid)));
gtk_widget_set_visual (widget, visual);
gtkgc->widget = widget;
g_return_if_fail (NULL != (gtkgc->context = glXCreateContext (xdisplay, xvi, NULL, GL_TRUE)));
gtk_glx_context_list = g_slist_prepend (gtk_glx_context_list, gtkgc);
}
示例10: DEFINE_THREAD_ROUTINE
/**
* Main GTK Thread.
* On an actual application, this thread should be started from your app main thread, and not from a video stage
* This thread will handle all GTK-related functions
*/
DEFINE_THREAD_ROUTINE(gtk, data)
{
GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
display_stage_cfg_t *cfg = (display_stage_cfg_t *)data;
cfg->widget = window;
g_signal_connect (window, "expose-event", G_CALLBACK (on_expose_event), data);
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
gtk_window_set_default_size (GTK_WINDOW (window), 10, 10);
gtk_widget_set_app_paintable (window, TRUE);
gtk_widget_set_double_buffered (window, FALSE);
gtk_widget_show_all (window);
gtkRunning = TRUE;
gtk_main ();
gtkRunning = FALSE;
// Force ardrone_tool to close
exit_program = 0;
// Sometimes, ardrone_tool might not finish properly
// This happens mainly because a thread is blocked on a syscall
// in this case, wait 5 seconds then kill the app
sleep (5);
exit (0);
return (THREAD_RET)0;
}
示例11: gtk_init
cairo_t *init_toolkit(int *argc, char ***argv)
{
cairo_t *cairo_context;
cairo_rectangle_int_t rect = { 0, 0, WIN_WIDTH, WIN_HEIGHT };
int i;
gtk_init(argc, argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, WIN_WIDTH, WIN_HEIGHT);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_window_set_title(GTK_WINDOW(window), WIN_TITLE);
gtk_widget_set_app_paintable(window, TRUE);
gtk_widget_set_double_buffered(window, FALSE);
gtk_widget_add_events(window, GDK_KEY_PRESS_MASK);
g_signal_connect(window, "destroy", G_CALLBACK(close_window), NULL);
g_signal_connect(window, "key-press-event", G_CALLBACK(key_pressed), NULL);
g_signal_connect(window, "draw", G_CALLBACK(redraw), NULL);
for (i = 0; i < 2; i++) {
surface[i] = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, WIN_WIDTH, WIN_HEIGHT);
context[i] = cairo_create(surface[i]);
}
current = 0;
gtk_widget_show(window);
return context[0];
}
示例12: createHud
void FullscreenVideoControllerGtk::initializeWindow()
{
m_window = reinterpret_cast<GtkWidget*>(m_gstreamerGWorld->platformVideoWindow()->window());
if (!m_hudWindow)
createHud();
// Ensure black background.
#ifdef GTK_API_VERSION_2
GdkColor color = { 1, 0, 0, 0 };
gtk_widget_modify_bg(m_window, GTK_STATE_NORMAL, &color);
#else
GdkRGBA color = { 0, 0, 0, 1};
gtk_widget_override_background_color(m_window, GTK_STATE_FLAG_NORMAL, &color);
#endif
gtk_widget_set_double_buffered(m_window, FALSE);
m_keyPressSignalId = g_signal_connect(m_window, "key-press-event", G_CALLBACK(onFullscreenGtkKeyPressEvent), this);
m_destroySignalId = g_signal_connect(m_window, "destroy", G_CALLBACK(onFullscreenGtkDestroy), this);
m_isActiveSignalId = g_signal_connect(m_window, "notify::is-active", G_CALLBACK(onFullscreenGtkActiveNotification), this);
gtk_widget_show_all(m_window);
GdkWindow* window = gtk_widget_get_window(m_window);
GRefPtr<GdkCursor> cursor = adoptGRef(gdk_cursor_new(GDK_BLANK_CURSOR));
gdk_window_set_cursor(window, cursor.get());
m_motionNotifySignalId = g_signal_connect(m_window, "motion-notify-event", G_CALLBACK(onFullscreenGtkMotionNotifyEvent), this);
m_configureEventSignalId = g_signal_connect(m_window, "configure-event", G_CALLBACK(onFullscreenGtkConfigureEvent), this);
gtk_window_fullscreen(GTK_WINDOW(m_window));
showHud(true);
}
示例13: gui_init
void gui_init(dt_lib_module_t *self)
{
/* initialize ui widgets */
dt_lib_navigation_t *d = (dt_lib_navigation_t *)g_malloc0(sizeof(dt_lib_navigation_t));
self->data = (void *)d;
/* create drawingarea */
self->widget = gtk_drawing_area_new();
gtk_widget_set_events(self->widget, GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK
| GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK
| GDK_BUTTON_RELEASE_MASK | GDK_STRUCTURE_MASK);
/* connect callbacks */
gtk_widget_set_double_buffered(self->widget, FALSE);
gtk_widget_set_app_paintable(self->widget, TRUE);
g_signal_connect(G_OBJECT(self->widget), "expose-event", G_CALLBACK(_lib_navigation_expose_callback), self);
g_signal_connect(G_OBJECT(self->widget), "button-press-event",
G_CALLBACK(_lib_navigation_button_press_callback), self);
g_signal_connect(G_OBJECT(self->widget), "button-release-event",
G_CALLBACK(_lib_navigation_button_release_callback), self);
g_signal_connect(G_OBJECT(self->widget), "motion-notify-event",
G_CALLBACK(_lib_navigation_motion_notify_callback), self);
g_signal_connect(G_OBJECT(self->widget), "leave-notify-event",
G_CALLBACK(_lib_navigation_leave_notify_callback), self);
/* set size of navigation draw area */
int panel_width = dt_conf_get_int("panel_width");
gtk_widget_set_size_request(self->widget, -1, panel_width * .5);
/* connect a redraw callback to control draw all and preview pipe finish signals */
dt_control_signal_connect(darktable.signals, DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED,
G_CALLBACK(_lib_navigation_control_redraw_callback), self);
dt_control_signal_connect(darktable.signals, DT_SIGNAL_DEVELOP_PREVIEW_PIPE_FINISHED,
G_CALLBACK(_lib_navigation_control_redraw_callback), self);
}
示例14: cem_gl_area_configure
static void
cem_gl_area_configure(GtkWidget *area, gpointer data)
{
GLint attributes[] = { GLX_RGBA, GLX_DEPTH_SIZE, 24, GLX_DOUBLEBUFFER, None};
CemGLAreaPrivate *priv;
gtk_widget_set_double_buffered(area, FALSE);
priv = cem_gl_area_get_instance_private(area);
priv->drawing_window = gtk_widget_get_window(GTK_WIDGET(area));
priv->x_window = gdk_x11_window_get_xid(GDK_WINDOW(priv->drawing_window));
priv->x_display = gdk_x11_get_default_xdisplay();
priv->x_visual = glXChooseVisual(priv->x_display, 0, attributes);
priv->x_context = glXCreateContext(priv->x_display, priv->x_visual, NULL, GL_TRUE);
XGetWindowAttributes(priv->x_display, priv->x_window, &priv->x_attributes);
glXMakeCurrent(priv->x_display, priv->x_window, priv->x_context);
XMapWindow(priv->x_display, priv->x_window);
glViewport(0, 0, priv->x_attributes.width, priv->x_attributes.height);
glOrtho(-10, 10, -10, 10, -10, 10);
glScalef(5.0, 5.0, 5.0);
}
示例15: main
int main (int argc, char** argv)
{
gtk_init(&argc, &argv);
_engine.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size(GTK_WINDOW(_engine.window), 800, 600);
gtk_window_set_title(GTK_WINDOW(_engine.window), "OpenGL ES2 in GTK2 application");
gtk_widget_show_all(_engine.window);
//_egl_init(&_engine);
//_s52_init(&_engine);
gtk_widget_set_app_paintable (_engine.window, TRUE );
gtk_widget_set_double_buffered (_engine.window, FALSE);
gtk_widget_set_redraw_on_allocate(_engine.window, TRUE );
g_signal_connect(G_OBJECT(_engine.window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
g_signal_connect(G_OBJECT(_engine.window), "key_release_event", G_CALLBACK(_key_release_event), NULL);
g_signal_connect(G_OBJECT(_engine.window), "configure_event", G_CALLBACK(_configure_event), NULL);
_engine.do_S52init = TRUE;
g_timeout_add(500, _s52_draw_cb, &_engine); // 0.5 sec
gtk_main();
_s52_done(&_engine);
_egl_done(&_engine);
g_print("%s .. done\n", argv[0]);
return 0;
}