-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathChangeLog
More file actions
729 lines (558 loc) · 24.9 KB
/
Copy pathChangeLog
File metadata and controls
729 lines (558 loc) · 24.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
2018-02-24 Yavor Doganov <yavor@gnu.org>
* Source/OpalGraphics/OPColorSpaceLCMS.m: Don't include lcms
header, already included from OPColorSpaceLCMS.h.
(name): Get profile with cmsGetProfileInfoASCII.
(initWithCalibratedGrayWithWhitePoint:blackPoint:gamma:):
(initWithCalibratedRGBWithWhitePointCIExy:redCIExy:greenCIExy:blueCIExy:gamma:):
(initWithCalibratedRGBWithWhitePoint:blackPoint:gamma:matrix:):
Replace LPGAMMMATABLE with cmsToneCurve*.
(initWithICCProfile:): Replace LPVOID with const void*.
(CGColorSpaceModelForSignature): Change function parameter type to
cmsColorSpaceSignature. Update switch statement.
(numberOfComponents): Replace _cmsChannelsOf with cmsChannelsOf.
* Source/OpalGraphics/OPColorTransformLCMS.m: Don't include lcms
header, already included from OPColorTransformLCMS.h.
(LcmsFormatForOPImageFormat): Replace DWORD with cmsUInt32Number,
including the return type.
* Source/OpalGraphics/OPImageConversion.m: Don't include lcms
header, unnecessary.
* Source/OpalGraphics/OPColorSpaceLCMS.h: Include <lcms2.h>.
* Source/OpalGraphics/OPColorTransformLCMS.h: Likewise.
* Source/GNUmakefile (LIBRARIES_DEPEND_UPON): Detect lcms2.
* Source/OpalGraphics/GNUmakefile (ADDITIONAL_CPPFLAGS): Likewise.
* Source/OpalText/GNUmakefile (ADDITIONAL_CPPFLAGS): Remove lcms
detection, not necessary.
* README: Require lcms version 2.
2017-08-04 Daniel Ferreira <dtf@stanford.edu>
* Headers/ImageIO/ImageIO.h
* Headers/ImageIO/ImageIOBase.h
* Source/OpalGraphics/GNUmakefile.postamble:
CGImageSource and CGImageDestination are not actually CoreGraphics APIs
on the reference platform; rather, they are part of the ImageIO
framework and should be installed on the system as such.
However, simply transferring these two APIs from OpalGraphics into a new
"OpalImage" subproject is not so easy, since they have developed in many
ways a symbiotic relationship inside the library.
As a workaround, a GNUmakefile.postamble file has been added to
OpalGraphics which takes care of installing ImageIO headers properly.
2017-08-04 Daniel Ferreira <dtf@stanford.edu>
* Source/OpalText/GNUmakefile:
A mistake in the addition of SFNTLayoutTypes.h omitted an entry in the
project's GNUmakefile for it to be installed. This fixes the issue.
2017-07-26 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreText/CoreText.h
* Headers/CoreText/SFNTLayoutTypes.h:
Define SFNTLayoutTypes constants on CoreText for increased compatibility
with Quartz.
2017-07-26 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreText/CTLine.h
* Source/OpalText/CTLine.m:
Add unimplemented stub to CTLine for increased compatibility with
Quartz.
* Headers/CoreText/CTFont.h
* Source/OpalText/CTFont.m:
Add stubs for some CTFont* functions for increased compatibility with
Quartz.
2017-07-26 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreText/CTFont.h
* Headers/CoreText/CTFontDescriptor.h
* Headers/CoreText/CTFontTraits.h:
Update enumeration values for CTFont types, which have been updated in
the latest versions of the reference platform.
2017-07-17 Daniel Ferreira <dtf@stanford.edu>
* Tests/paths.m:
Improve the CGPath tests to cover more cases.
2017-07-17 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGPath.h
* Source/OpalGraphics/CGPath.m:
Implement CGPathContainsPoint() with logic taken from GNUstep-GUI's
NSBezierPath.
Add an implementation to CGPathAddArcToPoint(), a Quartz function for
creating curves in a convenient way.
Implement CGPathCreateWithRect(), a function which create a CGPath from
a rect.
Implement CGPathCreateMutableCopyByTransformingPath(), a function which
creates a new CGPath from another one by applying a transformation to
its points.
2017-07-17 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGPath.h
* Source/OpalGraphics/CGPath.m:
According to the Quartz specification, CGPathGetBoundingBox() should
include Bézier control points in its return rectangle, while
CGPathGetPathBoundingBox() should not.
This commit creates CGPathGetBoundingBox() with the exact same behavior
as the old Opal CGPathGetPathBoundingBox(), which mistakenly considered
Bézier control points in its return value. It also rewrites
CGPathGetPathBoundingBox() to exclude the control points from the return
value as per the specification.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Source/OpalGraphics/CGPath.m:
Rewrite the implementation of CGPathAddArc() to use the implementation
provided by NSBezierPath in GNUstep GUI. This amends a number of bugs in
its implementation, such as clockwise/counterclockwise handling.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGPDFDocument.h
* Source/OpalGraphics/CGPDFDocument.m:
Add a stub for CGPDFDocumentGetPage() for increased Quartz
compatibility.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGImage.h
* Source/OpalGraphics/CGImage.m:
Define stubs for constants to get CGImage properties. This increases
compatibility with Quartz.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGContext.h
* Source/OpalGraphics/CGContext.m:
Implement CGContextPathContainsPoint() using Cairo fill functions. This
improves compatibility with Quartz.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Source/OpalGraphics/CGPath.m:
Fix badly indented parts of CGPath.m which gravely hindered the code's
readability.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* .gitignore:
Make Git ignore *.orig and *.swp files, which are text editor
byproducts.
2017-07-12 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGGeometry.h:
Define CGGeometry basic structs as equivalent to their NSGeometry
counterparts. This allows them to be interchangeable as in the reference
platform.
2017-07-11 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGColorSpace.h
* Headers/CoreGraphics/CGContext.h
* Headers/CoreGraphics/CGError.h
* Headers/CoreGraphics/CGEventType.h
* Headers/CoreGraphics/CGFont.h
* Headers/CoreGraphics/CGGeometry.h
* Headers/CoreGraphics/CGGradient.h
* Headers/CoreGraphics/CGImage.h
* Headers/CoreGraphics/CGImageSource.h
* Headers/CoreGraphics/CGPDFObject.h
* Headers/CoreGraphics/CGPDFPage.h
* Headers/CoreGraphics/CGPDFStream.h
* Headers/CoreGraphics/CGPath.h
* Headers/CoreGraphics/CGPattern.h
* Headers/CoreText/CTFont.h
* Headers/CoreText/CTFontDescriptor.h
* Headers/CoreText/CTFontManager.h
* Headers/CoreText/CTFontTraits.h
* Headers/CoreText/CTFrame.h
* Headers/CoreText/CTGlyphInfo.h
* Headers/CoreText/CTLine.h
* Headers/CoreText/CTParagraphStyle.h
* Headers/CoreText/CTRun.h
* Headers/CoreText/CTStringAttributes.h:
Remove `typedef enum` declarations from public Opal headers, which
caused type errors if a client tried to bitwise-OR two values of
different enum types, which is usually allowed per the API
specification.
2017-07-11 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGAffineTransform.h
* Headers/CoreGraphics/CGBitmapContext.h
* Headers/CoreGraphics/CGColor.h
* Headers/CoreGraphics/CGColorSpace.h
* Headers/CoreGraphics/CGContext.h
* Headers/CoreGraphics/CGDataConsumer.h
* Headers/CoreGraphics/CGDataProvider.h
* Headers/CoreGraphics/CGEvent.h
* Headers/CoreGraphics/CGFont.h
* Headers/CoreGraphics/CGFunction.h
* Headers/CoreGraphics/CGGeometry.h
* Headers/CoreGraphics/CGGradient.h
* Headers/CoreGraphics/CGImage.h
* Headers/CoreGraphics/CGImageDestination.h
* Headers/CoreGraphics/CGImageSource.h
* Headers/CoreGraphics/CGLayer.h
* Headers/CoreGraphics/CGPDFArray.h
* Headers/CoreGraphics/CGPDFContentStream.h
* Headers/CoreGraphics/CGPDFContext.h
* Headers/CoreGraphics/CGPDFDictionary.h
* Headers/CoreGraphics/CGPDFDocument.h
* Headers/CoreGraphics/CGPDFObject.h
* Headers/CoreGraphics/CGPDFOperatorTable.h
* Headers/CoreGraphics/CGPDFPage.h
* Headers/CoreGraphics/CGPDFScanner.h
* Headers/CoreGraphics/CGPDFStream.h
* Headers/CoreGraphics/CGPDFString.h
* Headers/CoreGraphics/CGPSConverter.h
* Headers/CoreGraphics/CGPath.h
* Headers/CoreGraphics/CGPattern.h
* Headers/CoreGraphics/CGShading.h
* Headers/CoreGraphics/OPPostScriptContext.h
* Headers/CoreGraphics/OPSVGContext.h
* Headers/CoreText/CTFont.h
* Headers/CoreText/CTFontCollection.h
* Headers/CoreText/CTFontDescriptor.h
* Headers/CoreText/CTFontManager.h
* Headers/CoreText/CTFontManagerErrors.h
* Headers/CoreText/CTFontTraits.h
* Headers/CoreText/CTFrame.h
* Headers/CoreText/CTFramesetter.h
* Headers/CoreText/CTGlyphInfo.h
* Headers/CoreText/CTLine.h
* Headers/CoreText/CTParagraphStyle.h
* Headers/CoreText/CTRun.h
* Headers/CoreText/CTStringAttributes.h
* Headers/CoreText/CTTextTab.h
* Headers/CoreText/CTTypesetter.h:
Add `extern "C"` declarations to all Opal headers to allow them to be
used from within C++ programs.
2017-07-11 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGPath.h:
Export `CGMutablePathRef` as `CGPath *`, and not `CGMutablePath *`.
This allows CGPathRef to be replaced with CGMutablePathRef seamlessly on
a C++ context, improving compatibility with Quartz.
2017-06-30 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGColor.h
* Headers/CoreGraphics/CGColorSpace.h
* Headers/CoreGraphics/CGContext.h
* Headers/CoreGraphics/CGDataConsumer.h
* Headers/CoreGraphics/CGDataProvider.h
* Headers/CoreGraphics/CGFont.h
* Headers/CoreGraphics/CGFunction.h
* Headers/CoreGraphics/CGGradient.h
* Headers/CoreGraphics/CGImage.h
* Headers/CoreGraphics/CGImageDestination.h
* Headers/CoreGraphics/CGImageSource.h
* Headers/CoreGraphics/CGLayer.h
* Headers/CoreGraphics/CGPDFArray.h
* Headers/CoreGraphics/CGPDFContentStream.h
* Headers/CoreGraphics/CGPDFDictionary.h
* Headers/CoreGraphics/CGPDFDocument.h
* Headers/CoreGraphics/CGPDFObject.h
* Headers/CoreGraphics/CGPDFOperatorTable.h
* Headers/CoreGraphics/CGPDFPage.h
* Headers/CoreGraphics/CGPDFScanner.h
* Headers/CoreGraphics/CGPDFStream.h
* Headers/CoreGraphics/CGPDFString.h
* Headers/CoreGraphics/CGPSConverter.h
* Headers/CoreGraphics/CGPath.h
* Headers/CoreGraphics/CGPattern.h
* Headers/CoreGraphics/CGShading.h
* Headers/CoreText/CTFont.h
* Headers/CoreText/CTFontCollection.h
* Headers/CoreText/CTFontDescriptor.h
* Headers/CoreText/CTFrame.h
* Headers/CoreText/CTFramesetter.h
* Headers/CoreText/CTGlyphInfo.h
* Headers/CoreText/CTLine.h
* Headers/CoreText/CTParagraphStyle.h
* Headers/CoreText/CTRun.h
* Headers/CoreText/CTTextTab.h
* Headers/CoreText/CTTypesetter.h:
As per 083ef1d802d86db333fa40afeebaea7605737953 ("Opal: remove
unnecessary casts", 2010-07-13), we have added @class
forward-declarations for every internal Objective-C class that helps
implement the CoreGraphics C API. This avoided the need for many casts
inside the project, but caused conflicts when these headers were
imported by other projects.
Now, we guard against making this declaration in public headers unless
we are actually building Opal.
* Source/OpalGraphics/GNUmakefile
* Source/OpalText/GNUmakefile:
Add a macro to determine whether we are building Opal.
2017-06-14 Daniel Ferreira <dtf@stanford.edu>
* .gitignore:
Create a .gitignore file which causes Git to ignore products of the
project (usually in obj/ folders) and avoids mistakenly adding them to
the soruce tree.
2017-06-11 Daniel Ferreira <dtf@stanford.edu>
* Headers/CoreGraphics/CGAffineTransform.h:
The lack of an `extern` directive on CGAffineTransformIdentity's
declaration caused the compilation of C++ files that imported this
header to fail. This commit amends the issue.
* Headers/CoreGraphics/CGBase.h
* Headers/CoreGraphics/CGColorSpace.h:
Despite the numerous __OBJC__ guards on CoreGraphics headers to attempt
independency from Objective-C, Opal headers would still break any
project that tried to build non-ObjC files that included CoreGraphics
headers. We amend this issue here.
* Headers/CoreGraphics/CGBase.h:
To get rid of a CoreBase dependency in Opal, all CF types used by the
project were redefined in CGBase.h in r31020. However, this added the
setback that any project that includes CoreBase *after* including
CoreGraphics would have its build broken due to redefinitions, which is
highly undesirable. We amend this issue here.
* Headers/CoreGraphics/CGError.h
* Headers/CoreGraphics/CoreGraphics.h
* Source/OpalGraphics/GNUmakefile:
QuartzCore provides a CGError enum for tracking errors returned by the
library, which we did not yet supply. This commit creates this
definition for compatibility purposes.
2017-01-18 Fred Kiefer <FredKiefer@gmx.de>
* Source/OpalGraphics/CGContext.m: Protect against incorrect dash count.
* Source/OpalGraphics/cairo/CairoFontX11.m: Correct sign of descender.
* Source/OpalGraphics/image/OPImageCodecPNG.m: Prepare for newer
libpng versions.
2016-06-19 Fred Kiefer <FredKiefer@gmx.de>
* Source/GNUmakefile
Make this a library with resources.
* Source/OpalGraphics/OPColorSpaceLCMS.m
Load colour profile via library bundle.
2016-06-19 Fred Kiefer <FredKiefer@gmx.de>
* Source/OpalGraphics/CGImage-private.h
Add private header file.
* Source/OpalGraphics/CGImage.m
Extract code for private header file.
* Source/OpalGraphics/CGBitmapContext.m
Set the surface of image directly.
2015-12-13 Fred Kiefer <FredKiefer@gmx.de>
* Tests/GNUmakefile
* Tests/doublebuffer.m
New test file for double buffering as used by back.
* Source/OpalGraphics/CGBitmapContext.m
* Source/OpalGraphics/CGColor.m
* Source/OpalGraphics/CGImage.m
* Source/OpalGraphics/OPColorTransformLCMS.m
* Source/OpalGraphics/OPImageConversion.h
* Source/OpalGraphics/OPImageConversion.m
* Source/OpalGraphics/OPPremultiplyAlpha.m
Correct and speed up image conversion.
2013-10-01 Eric Wasylishen <ewasylishen@gmail.com>
* Headers/CoreGraphics/CGContext.h:
* Source/OpalGraphics/CGContext.m: Add OPContextGetAlpha
2013-09-29 Fred Kiefer <FredKiefer@gmx.de>
* Source/OpalGraphics/CGBitmapContext.m:
Support all sort of alpha for RGB data.
2013-09-27 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGImage.m:
* Source/OpalText/CTLine.m: Fix typos noticed by Philippe Roussel
2013-09-23 Ivan Vucica <ivan@vucica.net>
* Source/OpalGraphics/CGContext+GState.m:
Improved resilience to ctx->add being null.
* Source/OpalGraphics/CGImage.m:
Description now also includes value of crop i-var.
* Source/OpalGraphics/CGContext.m:
*SaveGState() and *RestoreGState() now more resilient
to being passed a NULL context.
Improved diagnostics in some functions, esp. *DrawImage().
2013-09-22 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext.m (CGContextGetCTM): Fix
flipping logic. gstate.m test now passes.
2013-09-21 Ivan Vucica <ivan@vucica.net>
* Tests/GNUmakefile:
* Tests/gstate.m:
Added gstate test. Currently this tests whether some CTM
operations are correctly performed in a CGContext; namely,
setting identity CTM, concatenating, and getting the current
CTM.
2013-09-19 Ivan Vucica <ivan@vucica.net>
* Source/OpalGraphics/CGContext+GState.m:
Made creation of OpalGStateSnapshot resistant to being passed
a nil context.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext.m (opal_draw_surface_in_rect):
Use srcRect correctly, as well as the context alpha value.
* Tests/images.m: JPEG codec is broken, so use a png of the
world map to make the demo work.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/image/OPImageCodecPNG.m:
* Source/OpalGraphics/image/OPImageCodecTIFF.m: Fix bugs in these
image codecs when they fail to load a given image.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Tests/bitmaps.m:
* Tests/images.m: Move sub-image test to images.m.
2013-09-22 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext.m (CGContextGetCTM): Fix
flipping logic. gstate.m test now passes.
2013-09-21 Ivan Vucica <ivan@vucica.net>
* Tests/GNUmakefile:
* Tests/gstate.m:
Added gstate test. Currently this tests whether some CTM
operations are correctly performed in a CGContext; namely,
setting identity CTM, concatenating, and getting the current
CTM.
2013-09-19 Ivan Vucica <ivan@vucica.net>
* Source/OpalGraphics/CGContext+GState.m:
Made creation of OpalGStateSnapshot resistant to being passed
a nil context.
2013-09-19 Ivan Vucica <ivan@vucica.net>
* Source/OpalGraphics/CGContext+GState.m:
Made creation of OpalGStateSnapshot resistant to being passed
a nil context.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext.m (opal_draw_surface_in_rect):
Use srcRect correctly, as well as the context alpha value.
* Tests/images.m: JPEG codec is broken, so use a png of the
world map to make the demo work.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/image/OPImageCodecPNG.m:
* Source/OpalGraphics/image/OPImageCodecTIFF.m: Fix bugs in these
image codecs when they fail to load a given image.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Tests/bitmaps.m:
* Tests/images.m: Move sub-image test to images.m.
Draws a portion of World_Map_1689.jpg over the
GNUstep logo.
2013-09-18 Eric Wasylishen <ewasylishen@gmail.com>
* Tests/cocoa.m:
* Tests/OpalTest.xcodeproj: Update xcode project to build bitmaps
demo. Tweak window setting in cocoa.m.
2013-09-18 Ivan Vucica <ivan@vucica.net>
* Tests/bitmaps.m:
Added code testing how sub-images are being drawn into CGContext.
2013-09-17 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGFont.m:
* Source/OpalGraphics/internal/CGFontInternal.h:
* Source/OpalGraphics/cairo/CairoFontWin32.m:
* Source/OpalGraphics/cairo/CairoFontX11.m:
* Headers/CoreGraphics/CGFont.h: Add private OPFontGetGlyphWithCharacter
to get the glyph index for a character. The proper API is in CoreText
but that's not usable yet, unlike CGFont.
2013-09-17 Eric Wasylishen <ewasylishen@gmail.com>
* Tests/texttest.m: Fix test: bug calculating glyph indicies
with the wrong font.
2013-09-17 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/cairo/CairoFontX11.m (-descent): Fix
descender calculation.
2013-09-17 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext.m (CGContextShowGlyphsAtPositions):
Check if font size is 0, and log an error instead of continuing,
which seems to put the cairo context into an error state.
2013-09-17 Ivan Vučica <ivan@vucica.net>
* Headers/CoreGraphics/CGFont.h:
* Source/OpalGraphics/CGFont.m:
Added OPFontCreateWithFcPattern() and OPFontGetMaximumAdvancement().
Added -createWithFcPattern: stub.
* Source/OpalGraphics/internal/CGFontInternal.h:
Added maximumAdvancement ivar.
* Source/OpalGraphics/cairo/CairoFontX11.m:
Added -createWithFcPattern: and -maximumAdvancement. Reworked
-createWithFontName: to use -createWithFcPattern:.
* Source/OpalGraphics/cairo/CairoFont.m:
Added -createWithFcPattern: stub.
2013-09-12 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGContext+GState.m:
* Headers/CoreGraphics/CGContext.h: Add OPContextCopyGState
and OPContextSetGState. I know we discussed writing getters
for individual properties of the graphics state but this
was quicker to throw together as a first iteration.
Warning, not tested.
2013-09-12 Eric Wasylishen <ewasylishen@gmail.com>
* Rename NSFont* to OPFont* to avoid conflicting with AppKit.
This is just a quick hack; to enable toll-free bridging will
require significant work.
2012-09-13 Ivan Vucica <ivan@vucica.net>
* Source/OpalText/CTFramesetter.m:
Breaking out of an infinite loop.
2013-08-02 Fred Kiefer <FredKiefer@gmx.de>
* Tests/GNUmakefile: Get it to compile again
2013-07-25 Ivan Vucica <ivan@vucica.net>
* Source/OpalGraphics/OPLogging.h:
Changed NSDebugLLog() category to OpalCall.
* Source/OpalGraphics/CGContext.m:
Made logging more useful by adding context %p.
2013-07-24 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGImage.m (CGImageCreateWithImageInRect):
Revert last change, it needs more work
2013-07-24 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGImage.m (CGImageCreateWithImageInRect):
Use the source rect to set the returned image's size.
The method is still incomplete, see TODOs.
2013-07-23 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/image/OPImageCodecPNG.m: Rewrite to use
OPImageConvert and always convert to 32-bit RGBA, unpacked,
non-premultiplied. This is not ideal, but should always work.
* Source/OpalGraphics/CGDataConsumer.m: Create the file if
needed.
2013-07-24 Ivan Vučica <ivan@vucica.net>
* Source/OpalGraphics/CGBitmapContext.m:
* Source/OpalGraphics/CGImage.m:
* Source/OpalGraphics/OPLogging.h:
* Source/OpalGraphics/OPImageConversion.m:
* Source/OpalGraphics/OPColorTransformLCMS.m:
* Source/OpalGraphics/CGContext.m:
* Source/OpalGraphics/CGAffineTransform.m:
Most non-error logging is now using NSDebugLLog(), to have Opal emit less
noise unless explicitly requested. Cleaned up small pieces of code.
2013-07-21 Ivan Vučica <ivan@vucica.net>
* Source/OpalGraphics/OPLogging.h:
* Source/OpalGraphics/OPLogging.m:
Call logging macros.
* Source/OpalGraphics/CGBitmapContext.m:
Logging creation of bitmap context.
* Source/OpalGraphics/CGImage.m:
Fixed crash in case 'data' argument passed to DumpPixel() was null.
* Source/OpalGraphics/CGContext.m:
* Headers/CoreGraphics/CGContext.h:
-Added OPContextSetCairoDeviceOffset().
-Added logging to nearly all GContext*() functions.
-In CGContextSet*ColorWithColor(), fixed retain/release setter
mechanics, so they don't break if user passes same CGColor pointer
twice.
-Added checks for null context and null ctx->add in several (but not
all) places.
2013-07-16 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGBitmapContext.m: Fix subtle endianness bug.
For future reference, kCGBitmapByteOrderDefault means big-endian.
* Tests/bitmaps.m: Add a bitmap context test. It draws a black background
with a cream colored blob in the bottom left.
2013-07-16 Eric Wasylishen <ewasylishen@gmail.com>
* Source/OpalGraphics/CGBitmapContext.m: Use calloc to allocate zeroed
bitmap buffers
2013-07-15 Ivan Vučica <ivan@vucica.net>
* Headers/CoreGraphics/CGContext.h:
* Source/OpalGraphics/CGContext.m:
Added OPContextSetIdentityCTM() and OPContextResetClip().
2013-07-01 Ivan Vučica <ivan@vucica.net>
* Headers/CoreGraphics/CGContext.h:
* Source/OpalGraphics/opal-win32.m:
* Source/OpalGraphics/opal-x11.m:
* Source/OpalGraphics/CGContext.m:
* Source/OpalGraphics/CGContext-private.h:
* Tests/x11.m:
Renamed a few things in order to expose X-based cairo surface as
an Opal context. Introduced a few class wrappers in the process.
2012-08-19 Ivan Vučica <ivan@vucica.net>
* Source/OpalGraphics/CGColor.m: Removed log output about CGColor
being created.
2012-07-06 Fred Kiefer <FredKiefer@gmx.de>
* Tests/GNUmakefile,
* Source/GNUmakefile: Allow for compilation without OpalText.
To achieve this define the variable NO_OPALTEXT before compiling.
2011-03-23 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeFont.m: Implement
-glyphWithName:.
2011-03-15 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeFont.m: Finish bounding
rect retrieval.
* Source/OpalText/NSFont.h
* Source/OpalText/NSFont.m:
Turn transformation matrix to a union so CGAffineTransform,
NSAffineTransformStruct and the CGFloat array used by NSFont
can be used interchangeably.
2011-03-15 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeFont.m: Implement more
transformations, some bounding box stuff.
* Source/OpalText/NSFont.h
* Source/OpalText/NSFont.m:
Store the font matrix as an CGAffineTransform for convenience.
2011-03-15 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeFont.m: Make FreeType
handle text transforms (at least partially). Implement getting
glyph advances.
* Source/OpalText/FreeType/OPFreeTypeUtil.h: Add convenience
functions for translating between CGAffineTransforms and
FreeType vectors/matrices.
2011-03-14 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeFont.m: Implement some more
NSFont methods in terms of FreeType.
2011-02-20 Niels Grewe <niels.grewe@halbordnung.de>
* Source/OpalText/FreeType/OPFreeTypeUtil.h: Also mark inline
functions as static.
2011-02-20 Fred Kiefer <FredKiefer@gmx.de>
* Source/OpalGraphics/CGContext.m: Add CMYK colour methods.
2010-11-15 Fred Kiefer <FredKiefer@gmx.de>
* Source/OpalText/CTGlyphInfo.m
* Source/OpalText/CTFontDescriptor.m
* Source/OpalText/CTFont.m
* Source/OpalText/CTFramesetter.m
* Source/OpalText/CTFontCollection.m
* Tests/gradients.m
* Tests/x11.m: Clean up line endings and remove some compiler warnings.
2010-02-11 Nicola Pero <nicola.pero@meta-innovation.com>
* Source/GNUmakefile: Use := when setting ADDITIONAL_CPPFLAGS and
ADDITIONAL_LDFLAGS to reduce the number of subshell invocations
required to compile.
* Tests/GNUmakefile: Same change for ADDITIONAL_LDFLAGS.