54 lines
1.2 KiB
C#
54 lines
1.2 KiB
C#
using MoonWorks;
|
|
using MoonWorks.Graphics;
|
|
using MoonWorks.Video;
|
|
using MoonWorks.Input;
|
|
|
|
namespace MoonWorksGraphicsTests;
|
|
|
|
class VideoPlayerExample : Example
|
|
{
|
|
private VideoAV1 Video;
|
|
private VideoPlayer VideoPlayer;
|
|
|
|
public override void Init(Window window, GraphicsDevice graphicsDevice, Inputs inputs)
|
|
{
|
|
Window = window;
|
|
GraphicsDevice = graphicsDevice;
|
|
|
|
Window.SetTitle("VideoPlayer");
|
|
|
|
// Load the video
|
|
Video = new VideoAV1(GraphicsDevice, TestUtils.GetVideoPath("hello.obu"), 25);
|
|
|
|
// Play the video
|
|
VideoPlayer = new VideoPlayer(GraphicsDevice);
|
|
VideoPlayer.Load(Video);
|
|
VideoPlayer.Loop = true;
|
|
VideoPlayer.Play();
|
|
}
|
|
|
|
public override void Update(System.TimeSpan delta)
|
|
{
|
|
VideoPlayer.Render();
|
|
}
|
|
|
|
public override void Draw(double alpha)
|
|
{
|
|
CommandBuffer cmdbuf = GraphicsDevice.AcquireCommandBuffer();
|
|
Texture swapchainTexture = cmdbuf.AcquireSwapchainTexture(Window);
|
|
if (swapchainTexture != null)
|
|
{
|
|
cmdbuf.Blit(VideoPlayer.RenderTexture, swapchainTexture, Filter.Linear, false);
|
|
}
|
|
GraphicsDevice.Submit(cmdbuf);
|
|
}
|
|
|
|
public override void Destroy()
|
|
{
|
|
VideoPlayer.Stop();
|
|
VideoPlayer.Unload();
|
|
VideoPlayer.Dispose();
|
|
Video.Dispose();
|
|
}
|
|
}
|