Difference between revisions of "love.graphics.setCanvas (日本語)"

m (work in progress...)
(translation updated.)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{newin (日本語)|[[0.8.0]]|080|type=関数|text=[[love.graphics.newFramebuffer (日本語)|love.graphics.newFramebuffer]] から名称変更}}
 
画面外表示を行うために [[Canvas (日本語)|Canvas]] オブジェクトを新規作成します。
 
{{newobjectnotice (日本語)}}
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( )
 
</source>
 
=== 引数 ===
 
なし。
 
=== 返値 ===
 
{{param|Canvas|canvas|ウィンドウにあるピクセルの大きさと等価な新規 Canvas の寸法。}}
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( width, height )
 
</source>
 
=== 引数 ===
 
{{param|number|width|出力先の Canvas の幅。}}
 
{{param|number|height|出力先の Canvas の高さ。}}
 
=== 返値 ===
 
{{param|Canvas|canvas|指定された幅と高さの新規 Canvas です。}}
 
 
== 関数 ==
 
{{newin (日本語)|[[11.0]]|110|type=異形}}
 
Creates a 2D or [[TextureType|cubemap]] Canvas using the given settings.
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( width, height, settings )
 
</source>
 
=== 引数 ===
 
{{param|number|width|出力先の Canvas の幅。}}
 
{{param|number|height|出力先の Canvas の高さ。}}
 
{{param|table|settings|テーブルには下記の内容をフィールドとして設定します:}}
 
{{subparam|TextureType|type ("2d")|作成する Canvas の種類。}}
 
{{subparam|PixelFormat|format ("normal")|Canvas の形式。}}
 
{{subparam|boolean|readable|Canvas を[[Texture:isReadable (日本語)|読み取り可能]]にするかどうか (描画、および[[Shader (日本語)|シェーダ]]でアクセスできるようにするかどうか)。 True ならばデフォルトで通常形式となり、 false ならば 深度/ステンシル形式となります。}}
 
{{subparam|number|msaa (0)|出力先の Canvas で描画時に使用するマルチサンプル・アンチエイリアシング (MSAA) のサンプル数。}}
 
{{subparam|number|dpiscale ([[love.graphics.getDPIScale]]())|Canvas の画面描画時だけではなく Canvas の描画にも用いられるCanvas の[[Texture:getDPIScale (日本語)|尺度係数]]。}}
 
{{subparam|CanvasMipmapMode|mipmaps ("none")|Canvas にミップマップを持たせるかどうか。持たせるならば自動生成するかどうか。}}
 
=== 返値 ===
 
{{param|Canvas|canvas|指定された幅と高さの新規 Canvas です。}}
 
=== 注意 ===
 
一部の Canvas 形式はデフォルト形式の Canvas より高いシステム要件を求められます。対応状況の確認には [[love.graphics.getCanvasFormats (日本語)|love.graphics.getCanvasFormats]] を使用してください。
 
 
== 関数 ==
 
{{newin (日本語)|[[11.0]]|110|type=異形}}
 
Creates a [[TextureType|volume or array]] texture-type Canvas.
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( width, height, layers, settings )
 
</source>
 
=== 引数 ===
 
{{param|number|width|出力先の Canvas の幅。}}
 
{{param|number|height|出力先の Canvas の高さ。}}
 
{{param|number|layers|アレイ・レイヤーの番号 (Canvas がアレイ・テクスチャの場合)、またはボリュームの深度 (Canvas がボリューム・テクスチャの場合)。}}
 
{{param|table|settings|テーブルには下記の内容をフィールドとして設定します:}}
 
{{subparam|TextureType|type ("array")|作成する Canvas の種類。}}
 
{{subparam|PixelFormat|format ("normal")|Canvas の形式。}}
 
{{subparam|boolean|readable|Canvas を[[Texture:isReadable (日本語)|読み取り可能]]にするかどうか (描画、および[[Shader (日本語)|シェーダ]]でアクセスできるようにするかどうか)。 True ならばデフォルトで通常形式となり、 false ならば 深度/ステンシル形式となります。}}
 
{{subparam|number|msaa (0)|出力先の Canvas で描画時に使用するマルチサンプル・アンチエイリアシング (MSAA) のサンプル数。}}
 
{{subparam|number|dpiscale ([[love.graphics.getDPIScale]]())|Canvas の画面描画時だけではなく Canvas の描画にも用いられるCanvas の[[Texture:getDPIScale (日本語)|尺度係数]]。}}
 
{{subparam|CanvasMipmapMode|mipmaps ("none")|Canvas にミップマップを持たせるかどうか。持たせるならば自動生成するかどうか。}}
 
=== 返値 ===
 
{{param|Canvas|canvas|指定された幅と高さの新規 Canvas です。}}
 
 
== 関数 ==
 
{{newinoldin (日本語)|[[0.9.0]]|090|[[11.0]]|110|type=異形}}
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( width, height, format )
 
</source>
 
=== 引数 ===
 
{{param|number|width (window_width)|出力先の Canvas の幅。}}
 
{{param|number|height (window_height)|出力先の Canvas の高さ。}}
 
{{param|CanvasFormat|format ("normal")|出力先の Canvas で使用するテクスチャ形式。}}
 
=== 返値 ===
 
{{param|Canvas|canvas|指定された幅と高さの新規 Canvas です。}}
 
=== 注意 ===
 
一部の Canvas 形式はデフォルト形式の Canvas より高いシステム要件を求められます。対応状況の確認には [[love.graphics.getCanvasFormats (日本語)|love.graphics.getCanvasFormats]] を使用してください。
 
 
== 関数 ==
 
{{newinoldin (日本語)|[[0.9.1]]|091|[[11.0]]|110|type=異形}}
 
=== 概要 ===
 
<source lang="lua">
 
canvas = love.graphics.newCanvas( width, height, format, msaa )
 
</source>
 
=== 引数 ===
 
{{param|number|width (window_width)|出力先の Canvas の幅。}}
 
{{param|number|height (window_height)|出力先の Canvas の高さ。}}
 
{{param|CanvasFormat|format ("normal")|出力先の Canvas で使用するテクスチャ形式。}}
 
{{param|number|msaa (0)|出力先の Canvas で描画時に使用するマルチサンプル・アンチエイリアシング (MSAA) のサンプル数。}}
 
 
=== 返値 ===
 
{{param|Canvas|canvas|指定された幅と高さの新規 Canvas です。}}
 
=== 注意 ===
 
一部の Canvas 形式はデフォルト形式の Canvas より高いシステム要件を求められます。対応状況の確認には [[love.graphics.getCanvasFormats (日本語)|love.graphics.getCanvasFormats]] を使用してください。
 
 
対応している MSAA サンプルの最大値はシステムに依存のため異なります。対応状況の確認には [[love.graphics.getSystemLimit (日本語)|love.graphics.getSystemLimit]] を使用してください。
 
 
MSAA サンプル数としてシステムが対応している最大値より大きい物が指定された場合は、そのまま Canvas は作成されますが対応している最大量のみ使用します(これは 0 も当てはまります)。
 
 
== 関連 ==
 
* [[parent::love.graphics (日本語)]]
 
* [[Constructs::Canvas (日本語)]]
 
* [[love.graphics.setCanvas (日本語)]]
 
[[Category:Functions]]
 
[[Sub-Category::Object Creation (日本語)| ]]
 
{{#set:Since=080}}
 
{{#set:PrettySince=0.8.0}}
 
{{#set:Description=[[Canvas (日本語)|Canvas]] オブジェクトを新規作成します。}}
 
 
== そのほかの言語 ==
 
{{i18n|love.graphics.newCanvas}}
 
 
 
----
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=関数|text=It has replaced [[Shader:getExternVariable (日本語)|Shader:getExternVariable]] から変更}}
 
シェーダに uniform / extern 変数が存在するかどうかを取得します。
 
 
グラフィックス・ドライバのシェーダ・コンパイラがシェーダの最終出力結果に uniform / extern 変数が影響しないと判断した場合は、変数を最適化して出力します。その場合、この関数は false を返します。
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
hasuniform = Shader:hasUniform( name )
 
</source>
 
=== 引数 ===
 
{{param|string|name|uniform 変数の名前。}}
 
=== 返値 ===
 
{{param|boolean|hasuniform|シェーダに uniform が存在しており、最終出力結果に影響を与えるかどうか。}}
 
== 関連 ==
 
* [[parent::Shader (日本語)]]
 
* [[Shader:send (日本語)]]
 
[[Category:Functions]]
 
{{#set:Description=シェーダに uniform / extern 変数が存在するかどうかを取得します。}}
 
{{#set:Since=110}}
 
{{#set:PrettySince=11.0}}
 
== そのほかの言語 ==
 
{{i18n (日本語)|Shader:hasUniform}}
 
 
 
----
 
{{newin (日本語)|[[0.9.0 (日本語)|0.9.0]]|090|type=関数|text=[[PixelEffect:send (日本語)|PixelEffect:send]] から名称変更}}
 
シェーダーの内部にある特別な変数 (''uniform'') へ値を送信します。Uniform 変数は ''uniform'' または ''extern'' キーワードで区別します。例えば、
 
 
<source lang="glsl">
 
uniform float time;  // "float" は GLSL シェーダーで使用される数値型です。
 
uniform float vars[2];
 
uniform vec2 light_pos;
 
uniform vec4 colors[4];
 
</source>
 
 
send の相当コードは、
 
 
<source lang="lua">
 
shader:send("time", t)
 
shader:send("vars",a,b)
 
shader:send("light_pos", {light_x, light_y})
 
shader:send("colors", {r1, g1, b1, a1},  {r2, g2, b2, a2},  {r3, g3, b3, a3},  {r4, g4, b4, a4})
 
</source>
 
 
 
Uniform / extern 変数はシェーダのコード側では読み取り専用であり、 Shader:send の呼び出しにより変更されるまで不変です。変数が各々で宣言されている場合に限り、シェーダーの頂点およびピクセルの両方にある要素の Uniform 変数へアクセスできます。
 
 
{{notice|version [[0.10.2 (日本語)|0.10.2]] では Shader:send で配列を送信すると最後の引数が無視されてしまう不具合があります。解決策は複数の値を送信する時にuniform 配列へ余分な疑似引数を追加します。}}
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, number, ... )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する number の名前。}}
 
{{param|number|number|uniform 変数へ格納するために送信する number}}
 
{{param|number|...|uniform 変数が配列である場合に送信する追加の number}}
 
=== 返値 ===
 
ありません。
 
=== 注釈 ===
 
Lua において全ての数値は浮動小数点数であるため、 version [[0.10.2]] 以降ではシェーダーのコードで <code>uniform int</code> 変数の値を送信するには [[Shader:send (日本語)|Shader:sendInt]] 関数を使用してください。
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, vector, ... )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信するベクトルの名前。}}
 
{{param|table|vector|ベクトルとして uniform 変数へ格納するために送信する number です。テーブルにある要素数でベクトルの種類を決定します (例えば、数値が二つであれば -> vec2)。最低2つおよび最高4つまでの数値を使用できます。}}
 
{{param|table|...|uniform 変数が配列である場合に送信する追加のベクトル。ベクトルの大きさは全て同一にしてください (例えば vec3 のみ)。}}
 
=== 返値 ===
 
ありません。
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, matrix, ... )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する行列の名前。}}
 
{{param|table|matrix|uniform 変数へ送信する 2x2, 3x3, または 4x4 の行列。テーブル形式を使用してください:  <code><nowiki>{{a,b,c,d}, {e,f,g,h}, ... }</nowiki></code> または ( version [[0.10.2]] から) <code>{a,b,c,d, e,f,g,h, ...}</code> [[0.10.2 (日本語)|0.10.2]] 以前までの順列は縦列方向でしたが、 [[11.0 (日本語)|11.0]] 以降の順列は横列方向へ変更されました。}}
 
{{param|table|...|uniform の配列に格納されている''matrix'' (行列) と同じ種類である追加対象の行列。}}
 
=== 返値 ===
 
ありません。
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, texture )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する [[Texture (日本語)|Texture]] の名前。}}
 
{{param|Texture|texture|uniform 変数へ送信するテクスチャ ([[Image (日本語)|Image]] または [[Canvas (日本語)|Canvas]])}}
 
=== 返値 ===
 
ありません。
 
 
== 関数 ==
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, boolean, ... )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する Boolean の名前。}}
 
{{param|boolean|boolean|uniform 変数へ送信する Boolean です。}}
 
{{param|boolean|...|uniform 変数が配列である場合に送信する追加の Boolean です。}}
 
=== 返値 ===
 
ありません。
 
 
== 関数 ==
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, matrixlayout, matrix, ... )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する行列 (matrix) の名前。}}
 
{{param|MatrixLayout|matrixlayout|行列の配置方法 (縦列または横列方向)。}}
 
{{param|table|matrix|uniform 変数へ送信する 2x2, 3x3, または 4x4 の行列。テーブル形式を使用してください:  <code><nowiki>{{a,b,c,d}, {e,f,g,h}, ... }</nowiki></code> または <code>{a,b,c,d, e,f,g,h, ...}</code>}}
 
{{param|table|...|uniform の配列に格納されている''matrix'' (行列) と同じ種類である追加対象の行列。}}
 
 
== 関数 ==
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
 
[[Data (日本語)|Data]] オブジェクトの内容を元にシェーダへ uniform 値を送信します。これはデータのバイトを直接複写します。
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, data, offset, size )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する uniform の名前。}}
 
{{param|Data|data|送信する値がある Data オブジェクト。}}
 
{{param|number|offset (0)|Data オブジェクトの先頭からのオフセット (バイト単位)。}}
 
{{param|number|size (all)|送信データの大きさ (バイト単位)。 nil ならば、指定された uniform と同じバイト数を複写します。}}
 
=== 返値 ===
 
ありません。
 
 
== 関数 ==
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
 
[[Data (日本語)|Data]] オブジェクトの内容を元にシェーダへ uniform 行列を送信します。これはデータのバイトを直接複写します。
 
=== 概要 ===
 
<source lang="lua">
 
Shader:send( name, data, matrixlayout, offset, size )
 
</source>
 
=== 引数 ===
 
{{param|string|name|シェーダーへ送信する uniform 行列の名前。}}
 
{{param|Data|data|送信する値がある Data オブジェクト。}}
 
{{param|MatrixLayout|matrixlayout|行列の配置方法 (縦列または横列方向)。}}
 
{{param|number|offset (0)|Data オブジェクトの先頭からのオフセット (バイト単位)。}}
 
{{param|number|size (all)|送信データの大きさ (バイト単位)。 nil ならば、指定された uniform と同じバイト数を複写します。}}
 
=== 返値 ===
 
ありません。
 
 
== 関連 ==
 
* [[parent::Shader (日本語)]]
 
* [[MatrixLayout (日本語)]]
 
 
[[Category:Functions]]
 
{{#set:Since=090}}
 
{{#set:PrettySince=0.9.0}}
 
{{#set:Description=シェーダーへ値を送信します。}}
 
 
== そのほかの言語 ==
 
{{i18n (日本語)|Shader:send}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
-----------------
 
{{newin (日本語)|[[11.0]]|110|type=列挙型}}
 
レンダリング時の [[Mesh (日本語)|Mesh]] 形状を選択する方法。
 
 
== 定数 ==
 
;back: Mesh で三角形の裏面 (back-facing: バック・フェーシング) を選択します (レンダリングではありません)。[[love.graphics.setFrontFaceWinding (日本語)|頂点順序]]で三角形の表面、または裏面を決定します。
 
;front: Mesh で三角形の表面 (front-facing: フロント・フェーシング) を選択します。
 
;none: Mesh で三角形の裏表両面をレンダリングします。
 
 
== 関連 ==
 
* [[parent::love.graphics (日本語)]]
 
* [[love.graphics.setMeshCullMode (日本語)]]
 
* [[Parent::Mesh (日本語)]]
 
 
[[Category:Enums]]
 
{{#set:Description=レンダリング時の [[Mesh (日本語)|Mesh]] 形状を選択する方法。}}
 
{{#set:Since=110}}
 
{{#set:PrettySince=11.0}}
 
== そのほかの言語 ==
 
{{i18n (日本語)|CullMode}}
 
 
 
 
-----------
 
 
{{newin (日本語)|[[0.8.0]]|080|type=関数|text=[[love.graphics.setRenderTarget (日本語)|love.graphics.setRenderTarget]] から名称変更}}
 
{{newin (日本語)|[[0.8.0]]|080|type=関数|text=[[love.graphics.setRenderTarget (日本語)|love.graphics.setRenderTarget]] から名称変更}}
 
[[Canvas (日本語)|Canvas]] へ描画操作を取り込みます。
 
[[Canvas (日本語)|Canvas]] へ描画操作を取り込みます。
Line 374: Line 44:
 
ありません。
 
ありません。
 
=== 注釈 ===
 
=== 注釈 ===
通常、全描画操作は関数に渡された最初の Canvas だけに描画されますが、[[Shader (日本語)|ピクセルシェーダー]]は標準 <code>void  effect</code> の代わりに [[love.graphics.newShader (日本語)#Pixel_Shader_Function|<code>vec4 effects</code> 関数]]を用いると変更します。
+
通常、全描画操作は関数に渡された最初の Canvas だけに描画されますが、標準 <code>void  effect</code> の代わりに [[love.graphics.newShader (日本語)#Pixel_Shader_Function|<code>vec4 effects</code> 関数]]を用いると[[Shader (日本語)|ピクセルシェーダー]]を変更します。
  
 
引数 Canvas で指定した表示対象の幅、高さ、および[[TextureMode (日本語)|テクスチャ形式]]は全て同一にしてください。全てのコンピューターが Canvas への複数表示対象に対応しているわけではありません。 [[love.graphics.isSupported (日本語)|love.graphics.isSupported("multicanvas")]] で true が返されたときは、最低でもキャンバスの 4 枚同時有効に対応しています。
 
引数 Canvas で指定した表示対象の幅、高さ、および[[TextureMode (日本語)|テクスチャ形式]]は全て同一にしてください。全てのコンピューターが Canvas への複数表示対象に対応しているわけではありません。 [[love.graphics.isSupported (日本語)|love.graphics.isSupported("multicanvas")]] で true が返されたときは、最低でもキャンバスの 4 枚同時有効に対応しています。
Line 380: Line 50:
 
== 関数 ==
 
== 関数 ==
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
Sets the render target to the specified [[TextureType|layer/slice]] and [[Texture:getMipmapCount|mipmap level]] of the given non-2D [[Canvas]]. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the [[Canvas]] and not shown on the screen.
+
指定された[[TextureType (日本語)|レイヤー/スライス]]へのレンダリング対象と指定された非二次元 [[Canvas (日本語)|Canvas]] [[Texture:getMipmapCount (日本語)|ミップマップレベル]]を設定します。次回の ''love.graphics.setCanvas'' が呼ばれるまで全描画操作は指定された [[Canvas (日本語)|Canvas]] へ転送されますが、画面には表示されません。
 
=== 概要 ===
 
=== 概要 ===
 
<source lang="lua">
 
<source lang="lua">
Line 386: Line 56:
 
</source>
 
</source>
 
=== 引数 ===
 
=== 引数 ===
{{param|Canvas|canvas|The new render target.}}
+
{{param|Canvas|canvas|新規レンダリング対象。}}
{{param|number|slice|For cubemaps this is the cube face index to render to (between 1 and 6). For Array textures this is the [[Texture:getLayerCount|array layer]]. For volume textures this is the depth slice. 2D canvases should use a value of 1.}}
+
{{param|number|slice|cubemap ならば、これはレンダリング先のキューブマップ・インデックスです (1 ~ 6までの範囲)。アレイ・テクスチャならば、これは[[Texture:getLayerCount (日本語)|アレイ・レイヤ]]です。ボリューム・テクスチャならば、これは深度スライスです。二次元 Canvas ならば必ず 1 の値を用いてください。}}
{{param|number|mipmap (1)|The mipmap level to render to, for Canvases with [[Texture:getMipmapCount|mipmaps]].}}
+
{{param|number|mipmap (1)|Canvas の[[Texture:getMipmapCount (日本語)|ミップマップ]]に対するレンダリング先のミップマップレベルです。}}
 
=== 返値 ===
 
=== 返値 ===
 
ありません。
 
ありません。
Line 394: Line 64:
 
== 関数 ==
 
== 関数 ==
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
 
{{newin (日本語)|[[11.0 (日本語)|11.0]]|110|type=異形}}
Sets the active render target(s) and active stencil and depth buffers based on the specified setup information. All drawing operations until the next ''love.graphics.setCanvas'' call will be redirected to the specified [[Canvas]]es and not shown on the screen.
+
レンダリング対象の有効化、およびステンシルの有効化と指定された設定情報に基づき深度バッファの設定を行います。次回の ''love.graphics.setCanvas'' が呼ばれるまで全描画操作は指定された [[Canvas (日本語)|Canvas]] へ転送されますが、画面には表示されません。
 
=== 概要 ===
 
=== 概要 ===
 
<source lang="lua">
 
<source lang="lua">
Line 400: Line 70:
 
</source>
 
</source>
 
=== 引数 ===
 
=== 引数 ===
{{param|table|setup|A table specifying the active Canvas(es), their mipmap levels and active layers if applicable, and whether to use a stencil and/or depth buffer.}}
+
{{param|table|setup|有効な Canvas, ミップマップレベルと適用可能ならば有効なレイヤ、そしてステンシルや深度バッファの使用有無をテーブルで指定します。}}
{{subparam|RenderTargetSetup|[1]|The Canvas to render to.}}
+
{{subparam|RenderTargetSetup|[1]|レンダリング先の Canvas です。}}
{{subparam|RenderTargetSetup|[2] (nil)|An additional Canvas to render to, if multiple simultaneous render targets are wanted.}}
+
{{subparam|RenderTargetSetup|[2] (nil)|複数同時にレンダリング対象が必要ならば、レンダリング先の追加 Canvas を記述します。}}
{{subparam|RenderTargetSetup|...|Additional Canvases to render to, if multiple simultaneous render targets are wanted.}}
+
{{subparam|RenderTargetSetup|...|さらに複数同時にレンダリング対象が必要ならば、レンダリング先の追加 Canvas を記述します。}}
{{subparam|boolean|stencil (false)|Whether an internally managed stencil buffer should be used, if the <code>depthstencil</code> field isn't set.}}
+
{{subparam|boolean|stencil (false)|<code>depthstencil</code> フィールドが未設定の場合、内部管理によるステンシル・バッファを使用するかどうか。}}
{{subparam|boolean|depth (false)|Whether an internally managed depth buffer should be used, if the <code>depthstencil</code> field isn't set.}}
+
{{subparam|boolean|depth (false)|<code>depthstencil</code> フィールドが未設定の場合、内部管理による深度バッファを使用するかどうか。}}
{{subparam|RenderTargetSetup|depthstencil (nil)|An optional custom depth/stencil [[PixelFormat|formatted]] Canvas to use for the depth and/or stencil buffer.}}
+
{{subparam|RenderTargetSetup|depthstencil (nil)|深度やステンシルバッファで用いるオプションのカスタムの深度/ステンシル[[PixelFormat (日本語)|整形済み]]Canvas です。}}
 
=== 返値 ===
 
=== 返値 ===
 
ありません。
 
ありません。
 
=== 注釈 ===
 
=== 注釈 ===
The <code>RenderTargetSetup</code> parameters can either be a [[Canvas]] object, or a table in the following format: <code>{canvas, mipmap=#, layer=#, face=#}</code>
+
<code>RenderTargetSetup</code> の引数には [[Canvas (日本語)|Canvas]] オブジェクト、または次の形式にて記したテーブルを指定できます: <code>{canvas, mipmap=#, layer=#, face=#}</code>
{{param|Canvas|[1]|The Canvas to use for this active render target.}}
+
{{param|Canvas|[1]|有効なレンダリング対象として用いる Canvas です。}}
{{param|number|mipmap (1)|The mipmap level to render to, for Canvases with [[Texture:getMipmapCount|mipmaps]].}}
+
{{param|number|mipmap (1)|Canvas の[[Texture:getMipmapCount (日本語)|ミップマップ]]に対するレンダリング先のミップマップレベル。}}
{{param|number|layer (1)|Only used for [[TextureType|Volume and Array]]-type Canvases. For Array textures this is the [[Texture:getLayerCount|array layer]] to render to. For volume textures this is the depth slice.}}
+
{{param|number|layer (1)|[[TextureType (日本語)|ボリュームとアレイ]]方式の Canvas に限り使用します。アレイ・テクスチャならば、これはレンダリング先の[[Texture:getLayerCount (日本語)|アレイ・レイヤ]]です。ボリューム・テクスチャならば、これは深度スライスです。}}
{{param|number|face (1)|Only used for [[TextureType|Cubemap]]-type Canvases. The cube face index to render to (between 1 and 6)}}
+
{{param|number|face (1)|[[TextureType (日本語)|キューブマップ]]方式の Canvas に限り使用します。 レンダリング先のキューブマップ・インデックス (1 6 までの範囲)}}
  
 
== 用例 ==
 
== 用例 ==
Line 442: Line 112:
  
  
=== Advanced setup with the table variant of love.graphics.setCanvas ===
+
=== love.graphics.setCanvas の異形テーブルによる高度な設定 ===
 
<source lang="lua">
 
<source lang="lua">
-- Allow love.graphics.stencil calls when drawing to the given Canvas.
+
-- 指定の Canvas を描画するときに love.graphics.stencil を呼び出せるようにします。
 
love.graphics.setCanvas({canvas, stencil=true})
 
love.graphics.setCanvas({canvas, stencil=true})
  
-- Use multiple simultaneous render targets when drawing to several canvases of the Array Texture type,
+
-- アレイテクスチャ方式の複数 Canvas 描画時、およびカスタム深度バッファも
-- and use a custom depth buffer as well.
+
-- 併せて用いるときに複数同時にレンダリング対象を使用します。
 
canvas1 = love.graphics.newCanvas(128, 128, 4, {type="array"})
 
canvas1 = love.graphics.newCanvas(128, 128, 4, {type="array"})
 
canvas2 = love.graphics.newCanvas(128, 128, 8, {type="array"})
 
canvas2 = love.graphics.newCanvas(128, 128, 8, {type="array"})

Latest revision as of 09:53, 23 July 2019

LÖVE 0.8.0 から使用可能
love.graphics.setRenderTarget から名称変更。

Canvas へ描画操作を取り込みます。

関数

指定の Canvas へ表示対象を設定します。次回の love.graphics.setCanvas が呼ばれるまで全描画操作は指定の Canvas へ転送されますが、画面には表示されません。

現在使用中の Canvas でステンシルまたは深度テストを行うときは、後述の setCanvas の異形によりステンシルバッファあるいは深度バッファを明示的に有効にしてください。

love.graphics.present を呼び出すときは Canvas を有効にしないように注意してください。 love.graphics.present はデフォルトの love.run に記述されている love.draw の処理終了時に呼び出されます。したがって、この関数を用いて Canvas を使用可能にするならば、通常は love.draw の処理終了前の時点で Canvas を必ず無効にしてください。

概要

love.graphics.setCanvas( canvas, mipmap )

引数

Canvas canvas
新規表示対象。
LÖVE 11.0 から利用可能
number mipmap (1)
Canvas のミップマップに対するレンダリング先のミップマップレベル。

返値

ありません。

関数

画面を初期状態に戻して対象を描画します。つまり、画面への描画を再び有効にします。

概要

love.graphics.setCanvas( )

引数

なし。

返値

ありません。

関数

LÖVE 0.9.0 から使用可能
この異形は以前のバージョンでは非対応です。

複数同時に 二次元 Canvas の表示対象を設定します。次回の love.graphics.setCanvas が呼ばれるまで全描画操作は指定された Canvas へ転送されますが、画面には表示されません。

概要

love.graphics.setCanvas( canvas1, canvas2, ... )

引数

Canvas canvas1
最初の表示対象。
Canvas canvas2
次の表示対象。
Canvas ...
追加の Canvas を続けて記述します。

返値

ありません。

注釈

通常、全描画操作は関数に渡された最初の Canvas だけに描画されますが、標準 void effect の代わりに vec4 effects 関数を用いるとピクセルシェーダーを変更します。

引数 Canvas で指定した表示対象の幅、高さ、およびテクスチャ形式は全て同一にしてください。全てのコンピューターが Canvas への複数表示対象に対応しているわけではありません。 love.graphics.isSupported("multicanvas") で true が返されたときは、最低でもキャンバスの 4 枚同時有効に対応しています。

関数

LÖVE 11.0 から使用可能
この異形は以前のバージョンでは非対応です。

指定されたレイヤー/スライスへのレンダリング対象と指定された非二次元 Canvasミップマップレベルを設定します。次回の love.graphics.setCanvas が呼ばれるまで全描画操作は指定された Canvas へ転送されますが、画面には表示されません。

概要

love.graphics.setCanvas( canvas, slice, mipmap )

引数

Canvas canvas
新規レンダリング対象。
number slice
cubemap ならば、これはレンダリング先のキューブマップ・インデックスです (1 ~ 6までの範囲)。アレイ・テクスチャならば、これはアレイ・レイヤです。ボリューム・テクスチャならば、これは深度スライスです。二次元 Canvas ならば必ず 1 の値を用いてください。
number mipmap (1)
Canvas のミップマップに対するレンダリング先のミップマップレベルです。

返値

ありません。

関数

LÖVE 11.0 から使用可能
この異形は以前のバージョンでは非対応です。

レンダリング対象の有効化、およびステンシルの有効化と指定された設定情報に基づき深度バッファの設定を行います。次回の love.graphics.setCanvas が呼ばれるまで全描画操作は指定された Canvas へ転送されますが、画面には表示されません。

概要

love.graphics.setCanvas( setup )

引数

table setup
有効な Canvas, ミップマップレベルと適用可能ならば有効なレイヤ、そしてステンシルや深度バッファの使用有無をテーブルで指定します。
RenderTargetSetup [1]
レンダリング先の Canvas です。
RenderTargetSetup [2] (nil)
複数同時にレンダリング対象が必要ならば、レンダリング先の追加 Canvas を記述します。
RenderTargetSetup ...
さらに複数同時にレンダリング対象が必要ならば、レンダリング先の追加 Canvas を記述します。
boolean stencil (false)
depthstencil フィールドが未設定の場合、内部管理によるステンシル・バッファを使用するかどうか。
boolean depth (false)
depthstencil フィールドが未設定の場合、内部管理による深度バッファを使用するかどうか。
RenderTargetSetup depthstencil (nil)
深度やステンシルバッファで用いるオプションのカスタムの深度/ステンシル整形済みの Canvas です。

返値

ありません。

注釈

RenderTargetSetup の引数には Canvas オブジェクト、または次の形式にて記したテーブルを指定できます: {canvas, mipmap=#, layer=#, face=#}

Canvas [1]
有効なレンダリング対象として用いる Canvas です。
number mipmap (1)
Canvas のミップマップに対するレンダリング先のミップマップレベル。
number layer (1)
ボリュームとアレイ方式の Canvas に限り使用します。アレイ・テクスチャならば、これはレンダリング先のアレイ・レイヤです。ボリューム・テクスチャならば、これは深度スライスです。
number face (1)
キューブマップ方式の Canvas に限り使用します。 レンダリング先のキューブマップ・インデックス (1 ~ 6 までの範囲)。

用例

キャンバスへの描画

function love.load()
    -- キャンバスの作成。
    canvas = love.graphics.newCanvas()

    -- 直接的にキャンバスへ描画操作を行います。
    love.graphics.setCanvas(canvas)

    -- 色付きの正方形を描画します。
    love.graphics.setColor(0.8, 0.9, 0.4)
    love.graphics.rectangle("fill", 0, 0, 100, 100)

    -- メイン画面への描画を再び有効にします。
    love.graphics.setCanvas()
end

function love.draw()
    -- 拡大したキャンバスを画面へ描画します。
    love.graphics.setColor(1, 1, 1)
    love.graphics.draw(canvas, 200, 100, 0, 0.5, 0.5)
end


love.graphics.setCanvas の異形テーブルによる高度な設定

-- 指定の Canvas を描画するときに love.graphics.stencil を呼び出せるようにします。
love.graphics.setCanvas({canvas, stencil=true})

-- アレイテクスチャ方式の複数 Canvas 描画時、およびカスタム深度バッファも
-- 併せて用いるときに複数同時にレンダリング対象を使用します。
canvas1 = love.graphics.newCanvas(128, 128, 4, {type="array"})
canvas2 = love.graphics.newCanvas(128, 128, 8, {type="array"})
depthcanvas = love.graphics.newCanvas(128, 128, {format="depth24", readable=true})

love.graphics.setCanvas({
    {canvas1, layer = 3},
    {canvas2, layer = 1},
    depthstencil = depthcanvas,
})

関連



そのほかの言語