blob: ee94ca711dd0f0a0ba07f1c7e9a20f3379bf1fe5 [file] [log] [blame]
// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h"
#import <AppKit/AppKit.h>
#include "base/check_op.h"
namespace gfx {
struct ScopedNSGraphicsContextSaveGState::ObjCStorage {
NSGraphicsContext* context_; // weak
};
ScopedNSGraphicsContextSaveGState::ScopedNSGraphicsContextSaveGState()
: objc_storage_(std::make_unique<ObjCStorage>()) {
objc_storage_->context_ = NSGraphicsContext.currentContext;
[NSGraphicsContext saveGraphicsState];
}
ScopedNSGraphicsContextSaveGState::~ScopedNSGraphicsContextSaveGState() {
[NSGraphicsContext restoreGraphicsState];
DCHECK_EQ(objc_storage_->context_, NSGraphicsContext.currentContext);
}
} // namespace gfx