游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4805|回复: 1

盖莫游戏引擎-视频播放

[复制链接]

56

主题

94

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2010-9-9 18:43:00 | 显示全部楼层 |阅读模式
重新修改了引擎的视频播放这块并把视频等几个模块做成了插件的形式具体代码和截图如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//! 本代码测试引擎视频播放,插件系统,键盘测试和立方体绘制

//! 本代码测试引擎视频播放,插件系统,键盘测试和立方体绘制
#include <iostream>
#include <GEngine/Header_Config.hpp>

Matrix4f mat;
float pos[] = {0,0,0};
float length[] = {1,1,1};
float offset = -500;
using namespace core;
void MouseCheck();

VideoPlayer* video_player_instance = NULL;

int main(int argc,char *argv[])
{
    ScreenDesc desc;
    desc.name_ = "VideoPlayerTest";
    RefPtr<Screen> screen = CreateScreen(desc);

    GLOBAL_PLUGINMANAGER_PTR->SetPluginFolder("..\\plugin");
    GLOBAL_PLUGINMANAGER_PTR->InstallPlugin();

    VideoPlayerFactory factory;
    GLOBAL_PLUGINMANAGER_PTR->RegisterPluginFactory(&factory);
    factory.SetData(1,screen->GetHDC());
    factory.SetData(2,screen->GetHGLRC());
    video_player_instance = factory.Create();

    core::TextDesc* text = new core::TextDesc("..\\package\\accid.ttf",12,0,0,3,Color::Cyan);
    text->SetText(L"maker:gaimosoft,ccsdu2004@yahoo.com.cn");
    video_player_instance-&gtlay("..\\package\\video.mp4");

    while(screen->IsOpen())
    {
        GLOBAL_RENDERER_PTR->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        video_player_instance->Update();
        GLOBAL_RENDERER_PTR->AttachThreadRender();
        GLOBAL_RENDERER_PTR->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        uint id = video_player_instance->GetFrame();
        GLOBAL_TEXTUREMANAGER_PTR->BindTexture2(id);
        GLOBAL_RENDERER_PTR->DrawCube(pos,mat.ptr(),length);
        UI_Brush:reRender();
        text->Render(Rectf(offset,460,400,20));
        offset ++;
        if(offset >= 600)
           offset = -500;
        UI_Brush::PostRender();
        GLOBAL_RENDERER_PTR->DetachThreadRender();
        MouseCheck();
    }

    video_player_instance->Stop();
    delete text;
    DestroyScreen();
    return EXIT_SUCCESS;
}

//! 处理鼠标响应
void MouseCheck()
{
    if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F1))
    {
        mat*=mat.Rotate((rand()%200)/900.0f,1,0,0);
    }
    else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F2))
    {
        mat*=mat.Rotate((rand()%200)/900.0f,0,1,0);
    }
    else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F3))
    {
        mat*=mat.Rotate((rand()%200)/900.0f,0,0,1);
    }
}

56

主题

94

帖子

98

积分

注册会员

Rank: 2

积分
98
发表于 2010-9-9 18:43:00 | 显示全部楼层

Re:盖莫游戏引擎-视频播放

这次并没有做成全窗体播放的样子而是从播放器获取纹理标识
然后再渲染之 这样可以作出满意的样子了
截图为:


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-27 21:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表