obs-app.cpp 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/******************************************************************************
    Copyright (C) 2013 by Hugh Bailey <obs.jim@gmail.com>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
******************************************************************************/

J
jp9000 已提交
18
#include <util/bmem.h>
J
jp9000 已提交
19
#include "obs-app.hpp"
20
#include "window-obs-basic.hpp"
J
jp9000 已提交
21
#include "obs-wrappers.hpp"
J
jp9000 已提交
22
#include "wx-wrappers.hpp"
23 24 25 26 27 28 29 30

IMPLEMENT_APP(OBSApp)

bool OBSApp::OnInit()
{
	if (!wxApp::OnInit())
		return false;

J
jp9000 已提交
31 32 33
	if (!obs_startup())
		return false;

34 35
	wxInitAllImageHandlers();

J
jp9000 已提交
36
	OBSBasic *mainWindow = new OBSBasic();
J
jp9000 已提交
37 38 39 40 41 42 43 44 45 46 47 48 49 50

	const wxPanel *preview = mainWindow->GetPreviewPanel();
	wxRect rc = mainWindow->GetPreviewPanel()->GetClientRect();

	struct obs_video_info ovi;
	ovi.adapter         = 0;
	ovi.base_width      = rc.width;
	ovi.base_height     = rc.height;
	ovi.fps_num         = 30000;
	ovi.fps_den         = 1001;
	ovi.graphics_module = "libobs-opengl";
	ovi.output_format   = VIDEO_FORMAT_RGBA;
	ovi.output_width    = rc.width;
	ovi.output_height   = rc.height;
J
jp9000 已提交
51
	ovi.window          = WxToGSWindow(preview);
J
jp9000 已提交
52 53 54 55

	if (!obs_reset_video(&ovi))
		return false;

56 57 58
	mainWindow->Show();
	return true;
}
J
jp9000 已提交
59 60 61 62 63 64 65 66 67

int OBSApp::OnExit()
{
	obs_shutdown();
	blog(LOG_INFO, "Number of memory leaks: %u", bnum_allocs());

	wxApp::OnExit();
	return 0;
}