You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.6 KiB
58 lines
1.6 KiB
/*
|
|
Copyright 2020-2021 Brad Parker
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
#ifndef __VIDEO_H_
|
|
#define __VIDEO_H_
|
|
|
|
#include <QObject>
|
|
#include <QRect>
|
|
#include "../core/libretro.h"
|
|
|
|
class QOpenGLContext;
|
|
class QOpenGLFramebufferObject;
|
|
|
|
class VideoState : public QObject {
|
|
Q_OBJECT
|
|
public:
|
|
VideoState(QObject *parent = nullptr);
|
|
static VideoState* instance();
|
|
QOpenGLContext* context();
|
|
void setContext(QOpenGLContext *context);
|
|
void setAspectCorrectedRect(QRect r);
|
|
QRect aspectCorrectedRect();
|
|
QOpenGLFramebufferObject* fbo();
|
|
void setFBO(QOpenGLFramebufferObject *fbo);
|
|
unsigned baseWidth();
|
|
unsigned baseHeight();
|
|
void setBaseWidth(unsigned width);
|
|
void setBaseHeight(unsigned height);
|
|
float aspect();
|
|
void setAspect(float aspect);
|
|
struct retro_system_av_info* avInfo();
|
|
void setAvInfo(struct retro_system_av_info info);
|
|
private:
|
|
QOpenGLContext *m_context;
|
|
QRect m_aspectCorrectedRect;
|
|
struct retro_system_av_info m_avInfo;
|
|
unsigned m_baseWidth;
|
|
unsigned m_baseHeight;
|
|
float m_aspect;
|
|
QOpenGLFramebufferObject *m_fbo;
|
|
|
|
Q_DISABLE_COPY(VideoState)
|
|
};
|
|
|
|
#endif // __VIDEO_H_
|
|
|