{{newin (日本語)|[[0.10.0 (日本語)|0.10.0]]|100|type=関数}}
ガンマ補正表示の対応状況および有効かどうかを取得します。これは [[Config Files (日本語)|love.conf]] で <code>t.gammacorrect = true</code> を設定することで有効化できます。

すべてのデバイスがガンマ補正表示に対応しているわけではありません。非対応の場合は自動的に無効化を行い本関数では false を返します。この機能はデスクトップ・システムでは OpenGL 3 / DirectX 10 に対応したグラフィックスカード、および OpenGL ES 3 を利用できる iOS デバイスで対応しています。

== 関数 ==
=== 概要 ===
<source lang="lua">
gammacorrect = love.graphics.isGammaCorrect( )
</source>
=== 引数 ===
なし。
=== 返値 ===
{{param (日本語)|boolean|gammacorrect|true ならばガンマ補正表示に対応しており [[Config_Files (日本語)|love.conf]] で有効になっていますが、それ以外は false です。}}
== 注釈 ==
ガンマ補正表示の有効時は、多くの関数とオブジェクトで[[BlendMode|混合色]]と[[Shader (日本語)|シェーダー演算]]に対する数学上は正しい sRGB および 線形 RGB 間での自動色変換を行います (無効時)。

* 色は [[love.graphics.setColor (日本語)|love.graphics.setColor]], [[love.graphics.clear (日本語)|love.graphics.clear]], および [[Shader:sendColor (日本語)|Shader:sendColor]] に渡されると自動的に sRGB から 線形 RGB へ[[love.math.gammaToLinear (日本語)|変換]]されます。

* 色の設定において [[SpriteBatch (日本語)|SpriteBatch]], [[love.graphics.print (日本語)|テキストにおける文字ごとの色]], [[ParticleSystem (日本語)|ParticleSystem]], [[love.graphics.points (日本語)|複数点における点ごとの色]], 標準的な [[Mesh (日本語)|Mesh]], および [[love.graphics.newMesh (日本語)|カスタム Mesh]] で属性名 "VertexColor" を使用するとオブジェクト描画時にsRGB から 線形 RGB へ自動変換されます。

* <code>linear = true</code> フラグを設定せずに [[love.graphics.newImage (日本語)|Image]] を作成する場合は、 [[Image (日本語)|Image]] の描画時 (および [[Shader (日本語)|Shader]] にあるピクセルを取得する場合) に sRGB から線形 RGB へ色を自動変換します。

* 画面に描画されものすべては線形 RGB で混交が行われるため、その結果として画面で表示する場合は sRGB へ変換されます。

* "normal" または"srgb" [[CanvasFormat (日本語)|CanvasFormat]] を使用する [[Canvas (日本語)|Canvas]] では線形 RGB 混合された内容を有するため、その結果は描画時に sRGB で Canvas を記録します。 Canvas 自体を描画する時はピクセルの色は Image と同じ方法で sRGB から線形 RGB へ変換されます。Canvas のピクセルデータは sRGB は "rgba8"との深い暗色による比較に対して記録されるようにするためにより高い精度を考慮をしてください。

ガンマ補正表示有効時は二つの例外を除いて、ほとんどの変換は自動処理されるため、自分で書いたコードでは sRGB および 線形 RGB の色変換に関して心配する必要はありません:

* カスタム頂点属性を有している [[Mesh (日本語)|Mesh]] を使用しており、属性のうち一つは [[Shader (日本語)|Shader]] で色に対して使用されることは示されているものの、属性名が "VertexColor" ではない場合。

* uniform / extern 変数またはその他の変数を有している  [[Shader (日本語)|Shader]] が色に対して使用されることが示されているものの、 [[Shader:sendColor (日本語)|Shader:sendColor]] で使用されない場合。

どちらの場合であっても、 [[love.math.gammaToLinear (日本語)|love.math.gammaToLinear]] は Lua コードで色値を線形 RGB へ変換するために使用できます。または、シェーダー関数 <code>gammaCorrectColor</code> (または必要であれば <code>unGammaCorrectColor</code>) をシェーダーのコード内で使用できます。これらのシェーダー関数はガンマ補正表示が実際に有効な場合"のみ"変換を行います。その場合はシェーダープリプロセッサ定義として <code>LOVE_GAMMA_CORRECT</code> が設定されます。

ガンマ補正表示に関する詳細は [http://http.developer.nvidia.com/GPUGems3/gpugems3_ch24.html ここ], [http://filmicgames.com/archives/299 ここ], さらに [http://renderwonk.com/blog/index.php/archive/adventures-with-gamma-correct-rendering/ ここ]をお読みください。

== 関連 ==
* [[parent::love.graphics (日本語)]]
* [[Config Files (日本語)]]
* [[love.math.gammaToLinear (日本語)]]
* [[love.math.linearToGamma (日本語)]]
* [[Shader:sendColor (日本語)]]
[[Category:Functions (日本語)]]
{{#set:Description=ガンマ補正表示の対応状況および有効かどうかを取得します。}}
{{#set:Sub-Category=State (日本語)}}

== そのほかの言語 ==
{{i18n (日本語)|love.graphics.isGammaCorrect}}