Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
EffectTechnique.cs
Go to the documentation of this file.
1
using
System
;
2
using
System.Runtime.CompilerServices
;
3
using
System.Runtime.InteropServices
;
4
5
namespace
Microsoft.Xna.Framework.Graphics
;
6
7
public
sealed
class
EffectTechnique
8
{
9
internal
Effect
_parent
;
10
11
internal
EffectPassCollection
pPasses
;
12
13
internal
EffectAnnotationCollection
pAnnotations
;
14
15
internal
unsafe ID3DXBaseEffect*
pEffect
;
16
17
internal
unsafe sbyte*
_handle
;
18
19
internal
string
_name
;
20
21
public
EffectAnnotationCollection
Annotations =>
pAnnotations
;
22
23
public
EffectPassCollection
Passes
=>
pPasses
;
24
25
public
string
Name
=>
_name
;
26
27
internal
unsafe
EffectTechnique
(ID3DXBaseEffect* parent,
Effect
effect, sbyte* technique)
28
{
29
_parent
= effect;
30
pEffect
= parent;
31
_handle
= technique;
32
base._002Ector();
33
ID3DXBaseEffect* ptr =
pEffect
;
34
System
.
Runtime
.
CompilerServices
.
Unsafe
.SkipInit(out _D3DXTECHNIQUE_DESC d3DXTECHNIQUE_DESC);
35
int
num = ((delegate* unmanaged[Stdcall, Stdcall]<
IntPtr
, sbyte*, _D3DXTECHNIQUE_DESC*,
int
>)(
int
)(*(uint*)(*(
int
*)ptr + 20)))((nint)ptr,
_handle
, &d3DXTECHNIQUE_DESC);
36
if
(num < 0)
37
{
38
throw
GraphicsHelpers
.
GetExceptionFromResult
((uint)num);
39
}
40
IntPtr
ptr2 = (
IntPtr
)(
void
*)(int)(*(uint*)(&d3DXTECHNIQUE_DESC));
41
_name
=
Marshal
.
PtrToStringAnsi
(ptr2);
42
pPasses
=
new
EffectPassCollection
(
pEffect
,
this
,
System
.
Runtime
.
CompilerServices
.
Unsafe
.As<_D3DXTECHNIQUE_DESC,
int
>(ref
System
.
Runtime
.
CompilerServices
.
Unsafe
.AddByteOffset(ref d3DXTECHNIQUE_DESC, 4)));
43
pAnnotations
=
new
EffectAnnotationCollection
(
pEffect
,
_handle
,
System
.
Runtime
.
CompilerServices
.
Unsafe
.As<_D3DXTECHNIQUE_DESC,
int
>(ref
System
.
Runtime
.
CompilerServices
.
Unsafe
.AddByteOffset(ref d3DXTECHNIQUE_DESC, 8)));
44
}
45
46
internal
unsafe
void
UpdateHandle
(ID3DXBaseEffect* parent, sbyte*
handle
)
47
{
48
pEffect
= parent;
49
_handle
=
handle
;
50
pPasses
.
UpdateParent
(parent,
handle
);
51
pAnnotations
.
UpdateParent
(
pEffect
,
_handle
);
52
}
53
}
Microsoft.Xna.Framework.Graphics.EffectAnnotationCollection.UpdateParent
unsafe void UpdateParent(ID3DXBaseEffect *parent, sbyte *handle)
Definition
EffectAnnotationCollection.cs:72
Microsoft.Xna.Framework.Graphics.EffectAnnotationCollection
Definition
EffectAnnotationCollection.cs:8
Microsoft.Xna.Framework.Graphics.EffectPassCollection.UpdateParent
unsafe void UpdateParent(ID3DXBaseEffect *parent, sbyte *technique)
Definition
EffectPassCollection.cs:67
Microsoft.Xna.Framework.Graphics.EffectPassCollection
Definition
EffectPassCollection.cs:8
Microsoft.Xna.Framework.Graphics.EffectTechnique.Passes
EffectPassCollection Passes
Definition
EffectTechnique.cs:23
Microsoft.Xna.Framework.Graphics.EffectTechnique.Name
string Name
Definition
EffectTechnique.cs:25
Microsoft.Xna.Framework.Graphics.EffectTechnique.UpdateHandle
unsafe void UpdateHandle(ID3DXBaseEffect *parent, sbyte *handle)
Definition
EffectTechnique.cs:46
Microsoft.Xna.Framework.Graphics.EffectTechnique.EffectTechnique
unsafe EffectTechnique(ID3DXBaseEffect *parent, Effect effect, sbyte *technique)
Definition
EffectTechnique.cs:27
Microsoft.Xna.Framework.Graphics.EffectTechnique.pPasses
EffectPassCollection pPasses
Definition
EffectTechnique.cs:11
Microsoft.Xna.Framework.Graphics.EffectTechnique.pEffect
unsafe ID3DXBaseEffect * pEffect
Definition
EffectTechnique.cs:15
Microsoft.Xna.Framework.Graphics.EffectTechnique._name
string _name
Definition
EffectTechnique.cs:19
Microsoft.Xna.Framework.Graphics.EffectTechnique._parent
Effect _parent
Definition
EffectTechnique.cs:9
Microsoft.Xna.Framework.Graphics.EffectTechnique.pAnnotations
EffectAnnotationCollection pAnnotations
Definition
EffectTechnique.cs:13
Microsoft.Xna.Framework.Graphics.EffectTechnique._handle
unsafe sbyte * _handle
Definition
EffectTechnique.cs:17
Microsoft.Xna.Framework.Graphics.EffectTechnique
Definition
EffectTechnique.cs:8
Microsoft.Xna.Framework.Graphics.Effect
Definition
Effect.cs:12
Microsoft.Xna.Framework.Graphics.GraphicsHelpers.GetExceptionFromResult
static Exception GetExceptionFromResult(uint result)
Definition
GraphicsHelpers.cs:20
Microsoft.Xna.Framework.Graphics.GraphicsHelpers
Definition
GraphicsHelpers.cs:7
System.Runtime.CompilerServices.Unsafe
Definition
Unsafe.cs:6
System.Runtime.InteropServices.Marshal.PtrToStringAnsi
static unsafe? string PtrToStringAnsi(IntPtr ptr)
Definition
Marshal.cs:630
System.Runtime.InteropServices.Marshal
Definition
Marshal.cs:14
Microsoft.Xna.Framework.Graphics
Definition
AlphaTestEffect.cs:1
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Runtime.InteropServices
Definition
SequenceMarshal.cs:4
System.Runtime
Definition
NullablePublicOnlyAttribute.cs:3
System.ExceptionArgument.handle
@ handle
System
Definition
BlockingCollection.cs:8
System.IntPtr
Definition
IntPtr.cs:14
source
Microsoft.Xna.Framework.Graphics
EffectTechnique.cs
Generated by
1.10.0