コンテンツにスキップ

「Core Text」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
m Bot作業依頼: sourceタグをsyntaxhighlightタグに置換 (Category:非推奨のsourceタグを使用しているページ) - log
Cewbot (会話 | 投稿記録)
1行目: 1行目:
'''Core Text'''は、[[Mac OS X v10.4]]で初めて導入され、[[Mac OS X v10.5]]で公開された[[macOS]]の[[Core Foundation]]風の[[アプリケーションプログラミングインタフェース|API]]で、古くからmacOSにあり非推奨となった[[QuickDraw]]や[[Apple Type Services for Unicode Imaging|ATSUI]]に代わってテキストレンダリングの機能を担うものである。[[アップル (企業)|アップル]]によると、Core Textは高いパフォーマンスと利用の容易さを意識して設計され、このレイアウトAPIはシンプルで安定しており、Core Foundationや[[Quartz|Core Graphics]]、[[Cocoa]]と密接に関連している。<ref>[http://developer.apple.com/documentation/Carbon/Conceptual/CoreText_Programming/Overview/chapter_2_section_1.html Core Text Programming Guide: Core Text Overview]</ref>
'''Core Text'''は、[[Mac OS X v10.4]]で初めて導入され、[[Mac OS X v10.5]]で公開された[[macOS]]の[[Core Foundation]]風の[[アプリケーションプログラミングインタフェース|API]]で、古くからmacOSにあり非推奨となった[[QuickDraw]]や[[Apple Type Services for Unicode Imaging|ATSUI]]に代わってテキストレンダリングの機能を担うものである。[[Apple]]によると、Core Textは高いパフォーマンスと利用の容易さを意識して設計され、このレイアウトAPIはシンプルで安定しており、Core Foundationや[[Quartz|Core Graphics]]、[[Cocoa]]と密接に関連している。<ref>[http://developer.apple.com/documentation/Carbon/Conceptual/CoreText_Programming/Overview/chapter_2_section_1.html Core Text Programming Guide: Core Text Overview]</ref>


== 特徴 ==
== 特徴 ==

2021年5月20日 (木) 12:02時点における版

Core Textは、Mac OS X v10.4で初めて導入され、Mac OS X v10.5で公開されたmacOSCore Foundation風のAPIで、古くからmacOSにあり非推奨となったQuickDrawATSUIに代わってテキストレンダリングの機能を担うものである。Appleによると、Core Textは高いパフォーマンスと利用の容易さを意識して設計され、このレイアウトAPIはシンプルで安定しており、Core FoundationやCore GraphicsCocoaと密接に関連している。[1]

特徴

Core Textは次のような不透過型を提供している。

  • CTFramesetter - CTTypesetterを使って、与えられた属性付き文字列とCGPathからCTFrameオブジェクトを生成する。
  • CTTypesetter - 改行などの行のレイアウトを行う。
  • CTFrame - 行(CTLineオブジェクト)の配列を表す。
  • CTLine - 同じ属性を持つグリフの並びの配列を表す。
  • CTFont - フォントを表す。

使用例

次のコードは与えられたグラフィックコンテクストに「Hello, World!」と表示する。

// フォントの準備
CTFontRef font = CTFontCreateWithName(CFSTR("Times"), 48, NULL);

// 属性付き文字列の生成
CFStringRef keys[] = { kCTFontAttributeName };
CFTypeRef values[] = { font };
CFDictionaryRef attr = CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&values,
					  sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFAttributedStringRef attrString = CFAttributedStringCreate(NULL, CFSTR("Hello, World!"), attr);
CFRelease(attr);

// 文字列の描画
CTLineRef line = CTLineCreateWithAttributedString(attrString);
CGContextSetTextMatrix(context, CGAffineTransformIdentity);
CGContextSetTextPosition(context, 10, 20);
CTLineDraw(line, context);

// 後片付け
CFRelease(line);
CFRelease(attrString);
CFRelease(font);

参照

外部リンク