pub struct FilterProcVideo<U: FilterUserdata> {
pub scene: SceneInfo,
pub object: ObjectInfo,
pub video_object: VideoObjectInfo,
pub param: ObjectImageParam,
pub userdata: FilterUserdataHandle<U>,
/* private fields */
}filter only.Expand description
画像フィルタ処理のための構造体。
Fields§
§scene: SceneInfoシーン情報。
object: ObjectInfoオブジェクト情報。
video_object: VideoObjectInfo画像フィルタ特有のオブジェクト情報。
param: ObjectImageParamオブジェクトの画像パラメータ。
crate::filter::FilterPlugin::proc_video の終了時や Self::draw_image
などの呼び出し前に反映されます。
userdata: FilterUserdataHandle<U>エフェクト毎に保持されるユーザーデータ。
Implementations§
Source§impl<U: FilterUserdata> FilterProcVideo<U>
impl<U: FilterUserdata> FilterProcVideo<U>
Sourcepub fn set_filter_config_data_size(
&self,
data: &mut VariableLengthFilterConfigDataHandle,
size: usize,
) -> FilterProcResult<()>
pub fn set_filter_config_data_size( &self, data: &mut VariableLengthFilterConfigDataHandle, size: usize, ) -> FilterProcResult<()>
可変長の汎用データ項目のサイズを変更する。
データのread/writeガードが存在する場合は失敗します。
Sourcepub fn get_image_data<T>(&mut self, buffer: &mut [T]) -> usizewhere
T: Copy + FromBytes + Immutable,
pub fn get_image_data<T>(&mut self, buffer: &mut [T]) -> usizewhere
T: Copy + FromBytes + Immutable,
Sourcepub fn set_image_data<T: IntoBytes + Immutable>(
&mut self,
data: &[T],
width: u32,
height: u32,
)
pub fn set_image_data<T: IntoBytes + Immutable>( &mut self, data: &[T], width: u32, height: u32, )
Sourcepub fn get_image_texture2d(&mut self) -> Option<ID3D11Texture2D>
pub fn get_image_texture2d(&mut self) -> Option<ID3D11Texture2D>
現在のオブジェクトの画像データのポインタをID3D11Texture2Dのポインタとして取得する。
§Warning
Self::set_image_data によって現在の画像が変更されるかフィルタ処理の終了まで有効です。
Sourcepub fn get_framebuffer_texture2d(&mut self) -> Option<ID3D11Texture2D>
pub fn get_framebuffer_texture2d(&mut self) -> Option<ID3D11Texture2D>
Sourcepub fn read_section(&mut self) -> &ReadSection
pub fn read_section(&mut self) -> &ReadSection
読み取り専用の編集セクション。
Sourcepub fn get_output_image_param(
&mut self,
object: Option<ObjectHandle>,
offset: f64,
) -> FilterProcResult<ObjectImageParam>
pub fn get_output_image_param( &mut self, object: Option<ObjectHandle>, offset: f64, ) -> FilterProcResult<ObjectImageParam>
指定オブジェクト、または現在のオブジェクトの画像出力項目のパラメータを取得する。
§Arguments
object:取得するオブジェクト。Noneの場合は現在のオブジェクト。offset:取得する時間のオフセット。
Sourcepub fn get_image_object(
&mut self,
layer: u32,
offset: f64,
) -> Option<ObjectHandle>
pub fn get_image_object( &mut self, layer: u32, offset: f64, ) -> Option<ObjectHandle>
指定のレイヤーにある画像オブジェクトを取得する。
Sourcepub fn draw_image(
&mut self,
resource: &ImageResource,
param: DrawImageParam,
) -> FilterProcResult<()>
pub fn draw_image( &mut self, resource: &ImageResource, param: DrawImageParam, ) -> FilterProcResult<()>
指定の画像リソースをフレームバッファに描画する。
§Arguments
resource:描画する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile。param:描画パラメーター。
Sourcepub fn draw_poly(
&mut self,
vertices: &VertexList,
resource: Option<&ImageResource>,
) -> FilterProcResult<()>
pub fn draw_poly( &mut self, vertices: &VertexList, resource: Option<&ImageResource>, ) -> FilterProcResult<()>
指定の頂点リストをフレームバッファに描画する。
§Arguments
resource:テクスチャ画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile。Noneの場合はImageResource::TempBufferを利用します。
Sourcepub fn set_default_anchor(&mut self, width: u32, height: u32)
pub fn set_default_anchor(&mut self, width: u32, height: u32)
標準のアンカー枠を設定する。
通常は自動で設定されます。
Self::draw_image などで手動で描画する場合に使います。
この関数を呼び出すとこれ以降の描画処理後のフィルタ処理が中断されます。
Sourcepub fn set_blend_mode(&mut self, mode: BlendMode)
pub fn set_blend_mode(&mut self, mode: BlendMode)
描画時の合成モードを設定する。
Sourcepub fn set_material_shine(&mut self, shininess: f32)
pub fn set_material_shine(&mut self, shininess: f32)
描画時の光沢度を設定する。 カメラ制御の光源設定が有効の時に利用されます。
Sourcepub fn set_sampler_mode(&mut self, mode: SamplerMode)
pub fn set_sampler_mode(&mut self, mode: SamplerMode)
描画時のサンプラーを設定する。
Sourcepub fn set_culling_state(&mut self, culling: bool)
pub fn set_culling_state(&mut self, culling: bool)
描画時に裏面を非表示にするかを設定する。
Sourcepub fn set_billboard_mode(&mut self, mode: BillboardMode)
pub fn set_billboard_mode(&mut self, mode: BillboardMode)
描画時にカメラに向けるかどうかを設定する。
Sourcepub fn create_image_resource<T: IntoBytes + Immutable>(
&mut self,
resource: &ImageResource,
data: &[T],
width: u32,
height: u32,
) -> FilterProcResult<()>
pub fn create_image_resource<T: IntoBytes + Immutable>( &mut self, resource: &ImageResource, data: &[T], width: u32, height: u32, ) -> FilterProcResult<()>
画像リソースを作成する。 VRAMへデータを書き込みます。
§Note
- 既に同名の画像リソースが存在する場合、上書きされます。
§Arguments
resource:作成する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer。
§Panics
data をバイト列に変換した際の長さが width * height * 4 と一致しない場合、パニックします。
Sourcepub fn get_image_resource_texture2d(
&mut self,
resource: &ImageResource,
) -> FilterProcResult<*mut c_void>
pub fn get_image_resource_texture2d( &mut self, resource: &ImageResource, ) -> FilterProcResult<*mut c_void>
指定の画像リソースのD3D画像リソースのポインタを取得する。
§Arguments
resource:取得する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random。
Sourcepub fn get_image_resource_size(
&mut self,
resource: &ImageResource,
) -> FilterProcResult<(u32, u32)>
pub fn get_image_resource_size( &mut self, resource: &ImageResource, ) -> FilterProcResult<(u32, u32)>
指定の画像リソースのサイズを取得する。
§Arguments
resource:取得する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile。
Sourcepub fn copy_image_resource(
&mut self,
src_resource: &ImageResource,
dst_resource: &ImageResource,
) -> FilterProcResult<()>
pub fn copy_image_resource( &mut self, src_resource: &ImageResource, dst_resource: &ImageResource, ) -> FilterProcResult<()>
画像リソースをコピーする。
§Arguments
src_resource:コピー元。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::Framebuffer、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random、ImageResource::Layer、ImageResource::PreviousObject。dst_resource:コピー先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer。
Sourcepub fn clear_image_resource(
&mut self,
resource: &ImageResource,
color: RgbaPixel,
) -> FilterProcResult<()>
pub fn clear_image_resource( &mut self, resource: &ImageResource, color: RgbaPixel, ) -> FilterProcResult<()>
画像リソースをクリアする。
§Arguments
resource:クリアする画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer。
Sourcepub fn get_image_resource_data(
&mut self,
resource: &ImageResource,
buffer: &mut [u8],
width: u32,
height: u32,
pitch: u32,
format: OutputImageResourcePixelFormat,
) -> FilterProcResult<()>
pub fn get_image_resource_data( &mut self, resource: &ImageResource, buffer: &mut [u8], width: u32, height: u32, pitch: u32, format: OutputImageResourcePixelFormat, ) -> FilterProcResult<()>
画像リソースから指定フォーマットの画像データを取得する。
buffer は少なくとも pitch * height バイト必要です。
§Arguments
resource:読み取る画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource。
Sourcepub fn set_image_resource_data<T: IntoBytes + Immutable>(
&mut self,
resource: &ImageResource,
data: &[T],
width: u32,
height: u32,
pitch: u32,
format: InputImageResourcePixelFormat,
) -> FilterProcResult<()>
pub fn set_image_resource_data<T: IntoBytes + Immutable>( &mut self, resource: &ImageResource, data: &[T], width: u32, height: u32, pitch: u32, format: InputImageResourcePixelFormat, ) -> FilterProcResult<()>
画像リソースに指定フォーマットの画像データを設定する。
data をバイト列に変換した長さは少なくとも pitch * height バイト必要です。
§Arguments
resource:書き込む画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource。
Sourcepub fn draw_image_to_resource(
&mut self,
src_resource: &ImageResource,
dst_resource: &ImageResource,
param: DrawImageParam,
) -> FilterProcResult<()>
pub fn draw_image_to_resource( &mut self, src_resource: &ImageResource, dst_resource: &ImageResource, param: DrawImageParam, ) -> FilterProcResult<()>
指定の画像リソースを描画先の画像リソースに描画する。
§Arguments
src_resource:描画元。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile。dst_resource:描画先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer。
Sourcepub fn draw_poly_to_resource(
&mut self,
dst_resource: &ImageResource,
vertices: &VertexList,
src_resource: Option<&ImageResource>,
) -> FilterProcResult<()>
pub fn draw_poly_to_resource( &mut self, dst_resource: &ImageResource, vertices: &VertexList, src_resource: Option<&ImageResource>, ) -> FilterProcResult<()>
指定の頂点リストのポリゴンを描画先の画像リソースに描画する。
§Arguments
dst_resource:描画先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer。src_resource:テクスチャ画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile。Noneの場合はImageResource::TempBufferを利用します。
Sourcepub fn exec_pixelshader<T: Copy>(
&mut self,
cso_file: &str,
target: &ImageResource,
resources: &[ImageResource],
constant: T,
blend_state: &ID3D11BlendState,
sampler_state: &ID3D11SamplerState,
) -> FilterProcResult<()>
pub fn exec_pixelshader<T: Copy>( &mut self, cso_file: &str, target: &ImageResource, resources: &[ImageResource], constant: T, blend_state: &ID3D11BlendState, sampler_state: &ID3D11SamplerState, ) -> FilterProcResult<()>
ピクセルシェーダーを実行する。
シェーダー側とメモリレイアウトを合わせるため、constant を構造体で渡す場合は #[repr(C)]
を推奨します。
§Arguments
target:出力先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::Framebuffer、ImageResource::TempBuffer、ImageResource::CacheBuffer。resources:参照する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random。
Sourcepub fn exec_pixelshader_data<T: Copy>(
&mut self,
data: &[u8],
target: &ImageResource,
resources: &[ImageResource],
constant: T,
blend_state: &ID3D11BlendState,
sampler_state: &ID3D11SamplerState,
) -> FilterProcResult<()>
pub fn exec_pixelshader_data<T: Copy>( &mut self, data: &[u8], target: &ImageResource, resources: &[ImageResource], constant: T, blend_state: &ID3D11BlendState, sampler_state: &ID3D11SamplerState, ) -> FilterProcResult<()>
メモリ上のコンパイル済みピクセルシェーダーを実行する。
シェーダー側とメモリレイアウトを合わせるため、constant を構造体で渡す場合は #[repr(C)]
を推奨します。
§Arguments
target:出力先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::Framebuffer、ImageResource::TempBuffer、ImageResource::CacheBuffer。resources:参照する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random。
Sourcepub fn exec_computeshader<T: Copy>(
&mut self,
cso_file: &str,
targets: &[ImageResource],
resources: &[ImageResource],
constant: T,
count: [u32; 3],
sampler_state: &ID3D11SamplerState,
) -> FilterProcResult<()>
pub fn exec_computeshader<T: Copy>( &mut self, cso_file: &str, targets: &[ImageResource], resources: &[ImageResource], constant: T, count: [u32; 3], sampler_state: &ID3D11SamplerState, ) -> FilterProcResult<()>
コンピュートシェーダーを実行する。
シェーダー側とメモリレイアウトを合わせるため、constant を構造体で渡す場合は #[repr(C)]
を推奨します。
§Arguments
targets:読み書き先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::Framebuffer、ImageResource::TempBuffer、ImageResource::CacheBuffer。resources:参照する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random。
Sourcepub fn exec_computeshader_data<T: Copy>(
&mut self,
data: &[u8],
targets: &[ImageResource],
resources: &[ImageResource],
constant: T,
count: [u32; 3],
sampler_state: &ID3D11SamplerState,
) -> FilterProcResult<()>
pub fn exec_computeshader_data<T: Copy>( &mut self, data: &[u8], targets: &[ImageResource], resources: &[ImageResource], constant: T, count: [u32; 3], sampler_state: &ID3D11SamplerState, ) -> FilterProcResult<()>
メモリ上のコンパイル済みコンピュートシェーダーを実行する。
シェーダー側とメモリレイアウトを合わせるため、constant を構造体で渡す場合は #[repr(C)]
を推奨します。
§Arguments
targets:読み書き先。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::Framebuffer、ImageResource::TempBuffer、ImageResource::CacheBuffer。resources:参照する画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource、ImageResource::TempBuffer、ImageResource::CacheBuffer、ImageResource::ImageFile、ImageResource::Random。
Sourcepub fn release_image_resource(
&mut self,
resource: &ImageResource,
) -> FilterProcResult<()>
pub fn release_image_resource( &mut self, resource: &ImageResource, ) -> FilterProcResult<()>
Sourcepub fn exec_effect<'a, C, K, V>(
&mut self,
effect_name: &str,
param: C,
resource: &ImageResource,
) -> FilterProcResult<()>
pub fn exec_effect<'a, C, K, V>( &mut self, effect_name: &str, param: C, resource: &ImageResource, ) -> FilterProcResult<()>
指定のエフェクトを実行する。
フィルタ効果、入力項目のエフェクトが実行できます。
§Arguments
effect_name:実行するエフェクトの名前。param:エフェクトのパラメーター。Key・Valueはどちらもエイリアスと同様のフォーマットで指定します。resource:処理対象の画像リソース。利用できる種類はImageResource::Object、ImageResource::Resource。
Sourcepub fn get_blend_state(
&mut self,
mode: BlendStateMode,
) -> Option<ID3D11BlendState>
pub fn get_blend_state( &mut self, mode: BlendStateMode, ) -> Option<ID3D11BlendState>
定義済みのD3Dの出力ブレンドのリソースのポインタを取得する。
Sourcepub fn get_sampler_state(
&mut self,
mode: SamplerMode,
) -> Option<ID3D11SamplerState>
pub fn get_sampler_state( &mut self, mode: SamplerMode, ) -> Option<ID3D11SamplerState>
定義済みのD3Dのサンプラーのリソースのポインタを取得する。
Sourcepub fn prevent_post_effect(&mut self)
pub fn prevent_post_effect(&mut self)
フィルタ処理後の処理を中断する。
Self::draw_poly や Self::draw_image などを呼び出した後に使います。
Trait Implementations§
Source§impl<U: Debug + FilterUserdata> Debug for FilterProcVideo<U>
impl<U: Debug + FilterUserdata> Debug for FilterProcVideo<U>
impl<U: FilterUserdata> Send for FilterProcVideo<U>
impl<U: FilterUserdata> Sync for FilterProcVideo<U>
Auto Trait Implementations§
impl<U> !RefUnwindSafe for FilterProcVideo<U>
impl<U> !UnwindSafe for FilterProcVideo<U>
impl<U> Freeze for FilterProcVideo<U>where
FilterUserdataHandle<U>: Freeze,
impl<U> Unpin for FilterProcVideo<U>where
FilterUserdataHandle<U>: Unpin,
impl<U> UnsafeUnpin for FilterProcVideo<U>where
FilterUserdataHandle<U>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more