Fixed first drawing of a layer-backed OpenGL window.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@13087 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
d666a6f234
commit
2106f867b6
@ -2161,7 +2161,7 @@ static FLTextInputContext* fltextinputcontext_instance = nil;
|
|||||||
FLView implements displayLayer:. Consequently, FLView objects are drawn
|
FLView implements displayLayer:. Consequently, FLView objects are drawn
|
||||||
by the displayLayer: method. An FLView manages also a member variable
|
by the displayLayer: method. An FLView manages also a member variable
|
||||||
CGContextRef layer_gc, a bitmap context the size of the view (double on Retina).
|
CGContextRef layer_gc, a bitmap context the size of the view (double on Retina).
|
||||||
All Quartz drawings go to this bitmap. updateLayer finishes by using an image copy
|
All Quartz drawings go to this bitmap. displayLayer: finishes by using an image copy
|
||||||
of the bitmap as the layer's contents. That step fills the window.
|
of the bitmap as the layer's contents. That step fills the window.
|
||||||
When resized or when the window flips between low/high resolution displays,
|
When resized or when the window flips between low/high resolution displays,
|
||||||
FLView receives the viewFrameDidChange message which deletes the bitmap and zeros layer_gc.
|
FLView receives the viewFrameDidChange message which deletes the bitmap and zeros layer_gc.
|
||||||
@ -2199,11 +2199,7 @@ static CGContextRef prepare_bitmap_for_layer(int w, int h ) {
|
|||||||
if (d->wait_for_expose_value) {
|
if (d->wait_for_expose_value) {
|
||||||
// 1st drawing of GL window
|
// 1st drawing of GL window
|
||||||
[self did_view_resolution_change];
|
[self did_view_resolution_change];
|
||||||
NSRect r = [[self window] frame];
|
[window->as_gl_window()->context() update]; // GL window is empty without this
|
||||||
r.size.width -= 1;
|
|
||||||
[[self window] setFrame:r display:NO]; // very dirty but works. Should find something better.
|
|
||||||
r.size.width += 1;
|
|
||||||
[[self window] setFrame:r display:YES];
|
|
||||||
d->wait_for_expose_value = 0;
|
d->wait_for_expose_value = 0;
|
||||||
}
|
}
|
||||||
through_drawRect = YES;
|
through_drawRect = YES;
|
||||||
|
Loading…
Reference in New Issue
Block a user