aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa/QuartzTextLayout.h
diff options
context:
space:
mode:
authorNeil Hodgson <nyamatongwe@gmail.com>2018-05-21 15:20:08 +1000
committerNeil Hodgson <nyamatongwe@gmail.com>2018-05-21 15:20:08 +1000
commite0e105ea1559874a5a9097461d0d7933cb5cbbb4 (patch)
tree1cc61922e17beb3d98c7b689544dbdd36cbdde23 /cocoa/QuartzTextLayout.h
parent521ef7054806424c97dac5ee71b3a05ed5b9d7f4 (diff)
downloadscintilla-mirror-e0e105ea1559874a5a9097461d0d7933cb5cbbb4.tar.gz
Remove CGContextRef field in QuartzTextLayout as it is only used in draw method
where it can easily be provided. Retaining a CGContextRef in QuartzTextLayout could lead to it being used after being invalidated.
Diffstat (limited to 'cocoa/QuartzTextLayout.h')
-rw-r--r--cocoa/QuartzTextLayout.h20
1 files changed, 6 insertions, 14 deletions
diff --git a/cocoa/QuartzTextLayout.h b/cocoa/QuartzTextLayout.h
index c33231176..a3ed910de 100644
--- a/cocoa/QuartzTextLayout.h
+++ b/cocoa/QuartzTextLayout.h
@@ -18,12 +18,8 @@
class QuartzTextLayout {
public:
- /** Create a text layout for drawing on the specified context. */
- explicit QuartzTextLayout(CGContextRef context) {
- mString = NULL;
- mLine = NULL;
- stringLength = 0;
- setContext(context);
+ /** Create a text layout for drawing. */
+ QuartzTextLayout() : mString(NULL), mLine(NULL), stringLength(0) {
}
~QuartzTextLayout() {
@@ -58,11 +54,12 @@ public:
CFRelease(str);
}
- /** Draw the text layout into the current CGContext at the specified position.
+ /** Draw the text layout into a CGContext at the specified position.
+ * @param gc The CGContext in which to draw the text.
* @param x The x axis position to draw the baseline in the current CGContext.
* @param y The y axis position to draw the baseline in the current CGContext. */
- void draw(float x, float y) {
- if (mLine == NULL)
+ void draw(CGContextRef gc, float x, float y) {
+ if (!mLine)
return;
::CGContextSetTextMatrix(gc, CGAffineTransformMakeScale(1.0, -1.0));
@@ -89,12 +86,7 @@ public:
return stringLength;
}
- inline void setContext(CGContextRef context) {
- gc = context;
- }
-
private:
- CGContextRef gc;
CFAttributedStringRef mString;
CTLineRef mLine;
CFIndex stringLength;