pi_texture = 0;
data = nil;
- width = frame.size.width;
- height = frame.size.height;
+ width = frame.size.width * [[NSScreen mainScreen] backingScaleFactor];
+ height = frame.size.height * [[NSScreen mainScreen] backingScaleFactor];
drawingBounds = NSMakeRect(0, 0, width, height);
GST_LOG ("Width: %d Height: %d", width, height);
- (void) reshape {
NSRect bounds;
gdouble frame_par, view_par;
- gint view_height, view_width, c_height, c_width, c_x, c_y;
+ gint view_height, view_width, c_height, c_width, c_x, c_y, scale_factor;
[super reshape];
bounds = [self bounds];
view_width = bounds.size.width;
view_height = bounds.size.height;
+ scale_factor = [[NSScreen mainScreen] backingScaleFactor];
frame_par = (gdouble) width / height;
view_par = (gdouble) view_width / view_height;
c_y = (view_height - c_height) / 2;
}
- drawingBounds = NSMakeRect(c_x, c_y, c_width, c_height);
- glViewport (c_x, c_y, (GLint) c_width, (GLint) c_height);
+ drawingBounds = NSMakeRect(c_x * scale_factor, c_y * scale_factor,
+ c_width * scale_factor, c_height * scale_factor);
}
- (void) initTextures {
/* Black background */
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ glViewport ((GLint) drawingBounds.origin.x, (GLint) drawingBounds.origin.y,
+ (GLint) drawingBounds.size.width, (GLint) drawingBounds.size.height);
+
if (!initDone) {
[actualContext flushBuffer];
return;