mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-11 18:34:58 +01:00
Follow clang-tidy and clazy suggestions
variables non-POD should not be 'static' outside a class. Always use and init variables. Delete useless classes.
This commit is contained in:
@@ -85,7 +85,8 @@ std::string BaseToolkit::byte_to_string(long b)
|
|||||||
++i;
|
++i;
|
||||||
numbytes /= 1024.0;
|
numbytes /= 1024.0;
|
||||||
}
|
}
|
||||||
oss << std::fixed << std::setprecision(2) << numbytes << *i;
|
oss << std::fixed << std::setprecision(2) << numbytes;
|
||||||
|
if (i != list.end()) oss << *i;
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +103,8 @@ std::string BaseToolkit::bits_to_string(long b)
|
|||||||
++i;
|
++i;
|
||||||
numbytes /= 1000.0;
|
numbytes /= 1000.0;
|
||||||
}
|
}
|
||||||
oss << std::fixed << std::setprecision(2) << numbytes << *i;
|
oss << std::fixed << std::setprecision(2) << numbytes;
|
||||||
|
if (i != list.end()) oss << *i;
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -157,7 +157,8 @@ void Connection::listen()
|
|||||||
#ifdef CONNECTION_DEBUG
|
#ifdef CONNECTION_DEBUG
|
||||||
Log::Info("Accepting handshake on port %d", Connection::manager().connections_[0].port_handshake);
|
Log::Info("Accepting handshake on port %d", Connection::manager().connections_[0].port_handshake);
|
||||||
#endif
|
#endif
|
||||||
Connection::manager().receiver_->Run();
|
if (Connection::manager().receiver_)
|
||||||
|
Connection::manager().receiver_->Run();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Connection::ask()
|
void Connection::ask()
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ void Handles::draw(glm::mat4 modelview, glm::mat4 projection)
|
|||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( visible_ ) {
|
if ( visible_ && handle_) {
|
||||||
static Mesh *handle_active = new Mesh("mesh/border_handles_overlay_filled.ply");
|
static Mesh *handle_active = new Mesh("mesh/border_handles_overlay_filled.ply");
|
||||||
|
|
||||||
// set color
|
// set color
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ void GeometryView::draw()
|
|||||||
scene.accept(draw_overlays);
|
scene.accept(draw_overlays);
|
||||||
|
|
||||||
// 4. Draw control overlays of current source on top (if selectable)
|
// 4. Draw control overlays of current source on top (if selectable)
|
||||||
if (canSelect(s)) {
|
if (s!=nullptr && canSelect(s)) {
|
||||||
s->setMode(Source::CURRENT);
|
s->setMode(Source::CURRENT);
|
||||||
DrawVisitor dv(s->overlays_[mode_], projection);
|
DrawVisitor dv(s->overlays_[mode_], projection);
|
||||||
scene.accept(dv);
|
scene.accept(dv);
|
||||||
@@ -411,39 +411,40 @@ std::pair<Node *, glm::vec2> GeometryView::pick(glm::vec2 P)
|
|||||||
if (current->workspace() != Settings::application.current_workspace){
|
if (current->workspace() != Settings::application.current_workspace){
|
||||||
current = nullptr;
|
current = nullptr;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
// find if the current source was picked
|
// find if the current source was picked
|
||||||
auto itp = pv.rbegin();
|
auto itp = pv.rbegin();
|
||||||
for (; itp != pv.rend(); ++itp){
|
for (; itp != pv.rend(); ++itp){
|
||||||
// test if source contains this node
|
// test if source contains this node
|
||||||
Source::hasNode is_in_source((*itp).first );
|
Source::hasNode is_in_source((*itp).first );
|
||||||
if ( is_in_source( current ) ){
|
if ( is_in_source( current ) ){
|
||||||
// a node in the current source was clicked !
|
// a node in the current source was clicked !
|
||||||
pick = *itp;
|
pick = *itp;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// not found: the current source was not clicked
|
||||||
|
if (itp == pv.rend()) {
|
||||||
|
current = nullptr;
|
||||||
|
}
|
||||||
|
// picking on the menu handle: show context menu
|
||||||
|
else if ( pick.first == current->handles_[mode_][Handles::MENU] ) {
|
||||||
|
openContextMenu(MENU_SOURCE);
|
||||||
|
}
|
||||||
|
// pick on the lock icon; unlock source
|
||||||
|
else if ( UserInterface::manager().ctrlModifier() && pick.first == current->lock_ ) {
|
||||||
|
lock(current, false);
|
||||||
|
pick = { nullptr, glm::vec2(0.f) };
|
||||||
|
}
|
||||||
|
// pick on the open lock icon; lock source and cancel pick
|
||||||
|
else if ( UserInterface::manager().ctrlModifier() && pick.first == current->unlock_ ) {
|
||||||
|
lock(current, true);
|
||||||
|
pick = { nullptr, glm::vec2(0.f) };
|
||||||
|
}
|
||||||
|
// pick a locked source ; cancel pick
|
||||||
|
else if ( current->locked() ) {
|
||||||
|
pick = { nullptr, glm::vec2(0.f) };
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// not found: the current source was not clicked
|
|
||||||
if (itp == pv.rend()) {
|
|
||||||
current = nullptr;
|
|
||||||
}
|
|
||||||
// picking on the menu handle: show context menu
|
|
||||||
else if ( pick.first == current->handles_[mode_][Handles::MENU] ) {
|
|
||||||
openContextMenu(MENU_SOURCE);
|
|
||||||
}
|
|
||||||
// pick on the lock icon; unlock source
|
|
||||||
else if ( UserInterface::manager().ctrlModifier() && pick.first == current->lock_ ) {
|
|
||||||
lock(current, false);
|
|
||||||
pick = { nullptr, glm::vec2(0.f) };
|
|
||||||
}
|
|
||||||
// pick on the open lock icon; lock source and cancel pick
|
|
||||||
else if ( UserInterface::manager().ctrlModifier() && pick.first == current->unlock_ ) {
|
|
||||||
lock(current, true);
|
|
||||||
pick = { nullptr, glm::vec2(0.f) };
|
|
||||||
}
|
|
||||||
// pick a locked source ; cancel pick
|
|
||||||
else if ( current->locked() ) {
|
|
||||||
pick = { nullptr, glm::vec2(0.f) };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// the clicked source changed (not the current source)
|
// the clicked source changed (not the current source)
|
||||||
@@ -516,7 +517,7 @@ std::pair<Node *, glm::vec2> GeometryView::pick(glm::vec2 P)
|
|||||||
|
|
||||||
bool GeometryView::canSelect(Source *s) {
|
bool GeometryView::canSelect(Source *s) {
|
||||||
|
|
||||||
return ( View::canSelect(s) && s->ready() && s->active() && s->workspace() == Settings::application.current_workspace);
|
return ( s!=nullptr && View::canSelect(s) && s->ready() && s->active() && s->workspace() == Settings::application.current_workspace);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,16 @@ GlmToolkit::AxisAlignedBoundingBox::AxisAlignedBoundingBox() :
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GlmToolkit::AxisAlignedBoundingBox::AxisAlignedBoundingBox(const GlmToolkit::AxisAlignedBoundingBox &D) :
|
||||||
|
mMin(D.mMin), mMax(D.mMax)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void GlmToolkit::AxisAlignedBoundingBox::operator = (const GlmToolkit::AxisAlignedBoundingBox &D ) {
|
||||||
|
mMin = D.mMin;
|
||||||
|
mMax = D.mMax;
|
||||||
|
}
|
||||||
|
|
||||||
void GlmToolkit::AxisAlignedBoundingBox::extend(const glm::vec3& point)
|
void GlmToolkit::AxisAlignedBoundingBox::extend(const glm::vec3& point)
|
||||||
{
|
{
|
||||||
if (isNull()) {
|
if (isNull()) {
|
||||||
|
|||||||
@@ -15,11 +15,8 @@ class AxisAlignedBoundingBox
|
|||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
AxisAlignedBoundingBox();
|
AxisAlignedBoundingBox();
|
||||||
|
AxisAlignedBoundingBox(const AxisAlignedBoundingBox &D);
|
||||||
inline void operator = (const AxisAlignedBoundingBox &D ) {
|
void operator = (const AxisAlignedBoundingBox &D );
|
||||||
mMin = D.mMin;
|
|
||||||
mMax = D.mMax;
|
|
||||||
}
|
|
||||||
|
|
||||||
// test
|
// test
|
||||||
inline bool isNull() const { return mMin.x > mMax.x || mMin.y > mMax.y || mMin.z > mMax.z;}
|
inline bool isNull() const { return mMin.x > mMax.x || mMin.y > mMax.y || mMin.z > mMax.z;}
|
||||||
|
|||||||
@@ -152,14 +152,6 @@ void ImGuiVisitor::visit(FrameBufferSurface &n)
|
|||||||
ImGui::Text("Framebuffer");
|
ImGui::Text("Framebuffer");
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImGuiVisitor::visit(MediaSurface &n)
|
|
||||||
{
|
|
||||||
ImGui::Text("%s", n.path().c_str());
|
|
||||||
|
|
||||||
if (n.mediaPlayer())
|
|
||||||
n.mediaPlayer()->accept(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ImGuiVisitor::visit(MediaPlayer &n)
|
void ImGuiVisitor::visit(MediaPlayer &n)
|
||||||
{
|
{
|
||||||
ImGui::Text("Media Player");
|
ImGui::Text("Media Player");
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ public:
|
|||||||
void visit (Group& n) override;
|
void visit (Group& n) override;
|
||||||
void visit (Switch& n) override;
|
void visit (Switch& n) override;
|
||||||
void visit (Primitive& n) override;
|
void visit (Primitive& n) override;
|
||||||
void visit (MediaSurface& n) override;
|
|
||||||
void visit (FrameBufferSurface& n) override;
|
void visit (FrameBufferSurface& n) override;
|
||||||
|
|
||||||
// Elements with attributes
|
// Elements with attributes
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const char* ImageProcessingShader::filter_names[12] = { "None", "Blur", "Sharpen
|
|||||||
ImageProcessingShader::ImageProcessingShader(): Shader()
|
ImageProcessingShader::ImageProcessingShader(): Shader()
|
||||||
{
|
{
|
||||||
program_ = &imageProcessingShadingProgram;
|
program_ = &imageProcessingShadingProgram;
|
||||||
reset();
|
ImageProcessingShader::reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageProcessingShader::use()
|
void ImageProcessingShader::use()
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ ImageShader::ImageShader(): Shader(), stipple(0.f), mask_texture(0)
|
|||||||
// static program shader
|
// static program shader
|
||||||
program_ = &imageShadingProgram;
|
program_ = &imageShadingProgram;
|
||||||
// reset instance
|
// reset instance
|
||||||
reset();
|
ImageShader::reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageShader::use()
|
void ImageShader::use()
|
||||||
@@ -85,7 +85,7 @@ AlphaShader::AlphaShader(): ImageShader()
|
|||||||
MaskShader::MaskShader(): Shader(), mode(0)
|
MaskShader::MaskShader(): Shader(), mode(0)
|
||||||
{
|
{
|
||||||
// reset instance
|
// reset instance
|
||||||
reset();
|
MaskShader::reset();
|
||||||
// static program shader
|
// static program shader
|
||||||
program_ = &maskPrograms[0];
|
program_ = &maskPrograms[0];
|
||||||
}
|
}
|
||||||
|
|||||||
11
Log.cpp
11
Log.cpp
@@ -144,7 +144,10 @@ struct AppLog
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static AppLog logs;
|
AppLog logs;
|
||||||
|
list<string> notifications;
|
||||||
|
list<string> warnings;
|
||||||
|
float notifications_timeout = 0.f;
|
||||||
|
|
||||||
void Log::Info(const char* fmt, ...)
|
void Log::Info(const char* fmt, ...)
|
||||||
{
|
{
|
||||||
@@ -160,9 +163,6 @@ void Log::ShowLogWindow(bool* p_open)
|
|||||||
logs.Draw( ICON_FA_LIST_UL " Logs", p_open);
|
logs.Draw( ICON_FA_LIST_UL " Logs", p_open);
|
||||||
}
|
}
|
||||||
|
|
||||||
static list<string> notifications;
|
|
||||||
static float notifications_timeout = 0.f;
|
|
||||||
|
|
||||||
void Log::Notify(const char* fmt, ...)
|
void Log::Notify(const char* fmt, ...)
|
||||||
{
|
{
|
||||||
ImGuiTextBuffer buf;
|
ImGuiTextBuffer buf;
|
||||||
@@ -180,9 +180,6 @@ void Log::Notify(const char* fmt, ...)
|
|||||||
Log::Info("%s", buf.c_str());
|
Log::Info("%s", buf.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static list<string> warnings;
|
|
||||||
|
|
||||||
void Log::Warning(const char* fmt, ...)
|
void Log::Warning(const char* fmt, ...)
|
||||||
{
|
{
|
||||||
ImGuiTextBuffer buf;
|
ImGuiTextBuffer buf;
|
||||||
|
|||||||
1
Mesh.cpp
1
Mesh.cpp
@@ -263,7 +263,6 @@ bool parsePLY(string ascii,
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// ignore normals or other types
|
// ignore normals or other types
|
||||||
value = parseValue<float>(stringstream);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,9 +36,9 @@
|
|||||||
#include "Mixer.h"
|
#include "Mixer.h"
|
||||||
|
|
||||||
#define THREADED_LOADING
|
#define THREADED_LOADING
|
||||||
static std::vector< std::future<Session *> > sessionLoaders_;
|
std::vector< std::future<Session *> > sessionLoaders_;
|
||||||
static std::vector< std::future<Session *> > sessionImporters_;
|
std::vector< std::future<Session *> > sessionImporters_;
|
||||||
static std::vector< SessionSource * > sessionSourceToImport_;
|
std::vector< SessionSource * > sessionSourceToImport_;
|
||||||
const std::chrono::milliseconds timeout_ = std::chrono::milliseconds(4);
|
const std::chrono::milliseconds timeout_ = std::chrono::milliseconds(4);
|
||||||
|
|
||||||
|
|
||||||
@@ -1165,7 +1165,7 @@ void Mixer::merge(SessionSource *source)
|
|||||||
|
|
||||||
void Mixer::swap()
|
void Mixer::swap()
|
||||||
{
|
{
|
||||||
if (!back_session_)
|
if (!back_session_ || !session_)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (session_) {
|
if (session_) {
|
||||||
|
|||||||
@@ -99,8 +99,7 @@ void add_interface(int fd, const char *name) {
|
|||||||
strncpy(ifreq.ifr_name, name, IFNAMSIZ);
|
strncpy(ifreq.ifr_name, name, IFNAMSIZ);
|
||||||
if(ioctl(fd, SIOCGIFADDR, &ifreq)==0) {
|
if(ioctl(fd, SIOCGIFADDR, &ifreq)==0) {
|
||||||
char host[128];
|
char host[128];
|
||||||
int family;
|
switch(ifreq.ifr_addr.sa_family) {
|
||||||
switch(family=ifreq.ifr_addr.sa_family) {
|
|
||||||
case AF_INET:
|
case AF_INET:
|
||||||
case AF_INET6:
|
case AF_INET6:
|
||||||
getnameinfo(&ifreq.ifr_addr, sizeof ifreq.ifr_addr, host, sizeof host, 0, 0, NI_NUMERICHOST);
|
getnameinfo(&ifreq.ifr_addr, sizeof ifreq.ifr_addr, host, sizeof host, 0, 0, NI_NUMERICHOST);
|
||||||
|
|||||||
@@ -121,52 +121,6 @@ void ImageSurface::accept(Visitor& v)
|
|||||||
v.visit(*this);
|
v.visit(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
MediaSurface::MediaSurface(const std::string& p, Shader *s) : Surface(s), path_(p)
|
|
||||||
{
|
|
||||||
mediaplayer_ = new MediaPlayer;
|
|
||||||
}
|
|
||||||
|
|
||||||
MediaSurface::~MediaSurface()
|
|
||||||
{
|
|
||||||
delete mediaplayer_;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaSurface::init()
|
|
||||||
{
|
|
||||||
Surface::init();
|
|
||||||
|
|
||||||
mediaplayer_->open(path_);
|
|
||||||
mediaplayer_->play(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaSurface::draw(glm::mat4 modelview, glm::mat4 projection)
|
|
||||||
{
|
|
||||||
if ( !initialized() ) {
|
|
||||||
init();
|
|
||||||
// set the texture to the media player once openned
|
|
||||||
if ( mediaplayer_->isOpen() )
|
|
||||||
textureindex_ = mediaplayer_->texture();
|
|
||||||
}
|
|
||||||
|
|
||||||
Surface::draw(modelview, projection);
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaSurface::update( float dt )
|
|
||||||
{
|
|
||||||
if ( mediaplayer_->isOpen() ) {
|
|
||||||
mediaplayer_->update();
|
|
||||||
scale_.x = mediaplayer_->aspectRatio();
|
|
||||||
}
|
|
||||||
|
|
||||||
Primitive::update( dt );
|
|
||||||
}
|
|
||||||
|
|
||||||
void MediaSurface::accept(Visitor& v)
|
|
||||||
{
|
|
||||||
Surface::accept(v);
|
|
||||||
v.visit(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
FrameBufferSurface::FrameBufferSurface(FrameBuffer *fb, Shader *s) : Surface(s), frame_buffer_(fb)
|
FrameBufferSurface::FrameBufferSurface(FrameBuffer *fb, Shader *s) : Surface(s), frame_buffer_(fb)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -401,6 +355,24 @@ LineSquare::LineSquare(float linewidth) : Group()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LineSquare::LineSquare(const LineSquare &square)
|
||||||
|
{
|
||||||
|
top_ = new HLine(square.top_->width);
|
||||||
|
top_->translation_ = glm::vec3(0.f, 1.f, 0.f);
|
||||||
|
attach(top_);
|
||||||
|
bottom_ = new HLine(square.bottom_->width);
|
||||||
|
bottom_->translation_ = glm::vec3(0.f, -1.f, 0.f);
|
||||||
|
attach(bottom_);
|
||||||
|
left_ = new VLine(square.left_->width);
|
||||||
|
left_->translation_ = glm::vec3(-1.f, 0.f, 0.f);
|
||||||
|
attach(left_);
|
||||||
|
right_ = new VLine(square.right_->width);
|
||||||
|
right_->translation_ = glm::vec3(1.f, 0.f, 0.f);
|
||||||
|
attach(right_);
|
||||||
|
|
||||||
|
setColor(square.color());
|
||||||
|
}
|
||||||
|
|
||||||
void LineSquare::setLineWidth(float v)
|
void LineSquare::setLineWidth(float v)
|
||||||
{
|
{
|
||||||
top_->width = v;
|
top_->width = v;
|
||||||
@@ -417,7 +389,6 @@ void LineSquare::setColor(glm::vec4 c)
|
|||||||
right_->color = c;
|
right_->color = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LineStrip::LineStrip(const std::vector<glm::vec2> &path, float linewidth) : Primitive(new Shader),
|
LineStrip::LineStrip(const std::vector<glm::vec2> &path, float linewidth) : Primitive(new Shader),
|
||||||
arrayBuffer_(0), path_(path)
|
arrayBuffer_(0), path_(path)
|
||||||
{
|
{
|
||||||
|
|||||||
26
Primitives.h
26
Primitives.h
@@ -62,31 +62,6 @@ protected:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief The MediaSurface class is a Surface to draw a video
|
|
||||||
*
|
|
||||||
* URI is passed to a Media Player to handle the video playback
|
|
||||||
* Height = 1.0, Width is set by the aspect ratio of the image
|
|
||||||
*/
|
|
||||||
class MediaSurface : public Surface {
|
|
||||||
|
|
||||||
public:
|
|
||||||
MediaSurface(const std::string& p, Shader *s = new ImageShader);
|
|
||||||
~MediaSurface();
|
|
||||||
|
|
||||||
void init () override;
|
|
||||||
void draw (glm::mat4 modelview, glm::mat4 projection) override;
|
|
||||||
void accept (Visitor& v) override;
|
|
||||||
void update (float dt) override;
|
|
||||||
|
|
||||||
inline std::string path() const { return path_; }
|
|
||||||
inline MediaPlayer *mediaPlayer() const { return mediaplayer_; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
std::string path_;
|
|
||||||
MediaPlayer *mediaplayer_;
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief The FrameBufferSurface class is a Surface to draw a framebuffer
|
* @brief The FrameBufferSurface class is a Surface to draw a framebuffer
|
||||||
*
|
*
|
||||||
@@ -166,6 +141,7 @@ class LineSquare : public Group {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
LineSquare(float linewidth = 1.f);
|
LineSquare(float linewidth = 1.f);
|
||||||
|
LineSquare(const LineSquare &square);
|
||||||
|
|
||||||
void setLineWidth(float v);
|
void setLineWidth(float v);
|
||||||
inline float lineWidth() const { return top_->width; }
|
inline float lineWidth() const { return top_->width; }
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ void Rendering::LinkPipeline( GstPipeline *pipeline )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static std::map<GLFWwindow *, RenderingWindow*> GLFW_window_;
|
std::map<GLFWwindow *, RenderingWindow*> GLFW_window_;
|
||||||
|
|
||||||
static void glfw_error_callback(int error, const char* description)
|
static void glfw_error_callback(int error, const char* description)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -162,9 +162,8 @@ uint Resource::getTextureDDS(const std::string& path, float *aspect_ratio)
|
|||||||
uint mipMapCount = *(uint*)&(header[24]);
|
uint mipMapCount = *(uint*)&(header[24]);
|
||||||
uint fourCC = *(uint*)&(header[80]);
|
uint fourCC = *(uint*)&(header[80]);
|
||||||
|
|
||||||
// how big is it going to be including all mipmaps?
|
// how big is it going to be including all mipmaps?
|
||||||
uint bufsize;
|
uint bufsize = mipMapCount > 1 ? linearSize * 2 : linearSize;
|
||||||
bufsize = mipMapCount > 1 ? linearSize * 2 : linearSize;
|
|
||||||
|
|
||||||
// get the buffer = bytes [128 - ]
|
// get the buffer = bytes [128 - ]
|
||||||
const char *buffer = fp + 128;
|
const char *buffer = fp + 128;
|
||||||
@@ -188,7 +187,7 @@ uint Resource::getTextureDDS(const std::string& path, float *aspect_ratio)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (height == 0){
|
if (height == 0 || bufsize == 0){
|
||||||
Log::Error("Invalid image in ressource %s", std::string(path).c_str());
|
Log::Error("Invalid image in ressource %s", std::string(path).c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -309,14 +309,6 @@ void SessionVisitor::visit(FrameBufferSurface &)
|
|||||||
xmlCurrent_->SetAttribute("type", "FrameBufferSurface");
|
xmlCurrent_->SetAttribute("type", "FrameBufferSurface");
|
||||||
}
|
}
|
||||||
|
|
||||||
void SessionVisitor::visit(MediaSurface &n)
|
|
||||||
{
|
|
||||||
// Node of a different type
|
|
||||||
xmlCurrent_->SetAttribute("type", "MediaSurface");
|
|
||||||
|
|
||||||
n.mediaPlayer()->accept(*this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SessionVisitor::visit(MediaPlayer &n)
|
void SessionVisitor::visit(MediaPlayer &n)
|
||||||
{
|
{
|
||||||
XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer");
|
XMLElement *newelement = xmlDoc_->NewElement("MediaPlayer");
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ public:
|
|||||||
void visit (Primitive& n) override;
|
void visit (Primitive& n) override;
|
||||||
void visit (Surface&) override;
|
void visit (Surface&) override;
|
||||||
void visit (ImageSurface& n) override;
|
void visit (ImageSurface& n) override;
|
||||||
void visit (MediaSurface& n) override;
|
|
||||||
void visit (FrameBufferSurface&) override;
|
void visit (FrameBufferSurface&) override;
|
||||||
void visit (LineStrip& n) override;
|
void visit (LineStrip& n) override;
|
||||||
void visit (LineSquare&) override;
|
void visit (LineSquare&) override;
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ using namespace tinyxml2;
|
|||||||
|
|
||||||
|
|
||||||
Settings::Application Settings::application;
|
Settings::Application Settings::application;
|
||||||
|
string settingsFilename = "";
|
||||||
static string settingsFilename = "";
|
|
||||||
|
|
||||||
void Settings::Save()
|
void Settings::Save()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -206,7 +206,7 @@ Shader::Shader() : blending(BLEND_OPACITY)
|
|||||||
id_ = BaseToolkit::uniqueId();
|
id_ = BaseToolkit::uniqueId();
|
||||||
|
|
||||||
program_ = &simpleShadingProgram;
|
program_ = &simpleShadingProgram;
|
||||||
reset();
|
Shader::reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ Stream::Stream()
|
|||||||
|
|
||||||
Stream::~Stream()
|
Stream::~Stream()
|
||||||
{
|
{
|
||||||
close();
|
Stream::close();
|
||||||
|
|
||||||
// cleanup opengl texture
|
// cleanup opengl texture
|
||||||
if (textureindex_)
|
if (textureindex_)
|
||||||
|
|||||||
@@ -302,8 +302,7 @@ size_t Timeline::fillSectionsArrays( float* const gaps, float* const fading)
|
|||||||
if (gaps_.size() > 0) {
|
if (gaps_.size() > 0) {
|
||||||
|
|
||||||
// indices to define [s e[] sections
|
// indices to define [s e[] sections
|
||||||
size_t s = 0;
|
size_t s = 0, e;
|
||||||
size_t e = MAX_TIMELINE_ARRAY;
|
|
||||||
arraysize = 0;
|
arraysize = 0;
|
||||||
|
|
||||||
auto it = gaps_.begin();
|
auto it = gaps_.begin();
|
||||||
|
|||||||
@@ -18,6 +18,11 @@ struct TimeInterval
|
|||||||
{
|
{
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
|
TimeInterval(const TimeInterval& b)
|
||||||
|
{
|
||||||
|
begin = b.begin;
|
||||||
|
end = b.end;
|
||||||
|
}
|
||||||
TimeInterval(GstClockTime a, GstClockTime b) : TimeInterval()
|
TimeInterval(GstClockTime a, GstClockTime b) : TimeInterval()
|
||||||
{
|
{
|
||||||
if ( a != GST_CLOCK_TIME_NONE && b != GST_CLOCK_TIME_NONE) {
|
if ( a != GST_CLOCK_TIME_NONE && b != GST_CLOCK_TIME_NONE) {
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ using namespace std;
|
|||||||
#include "ImageProcessingShader.h"
|
#include "ImageProcessingShader.h"
|
||||||
|
|
||||||
#include "TextEditor.h"
|
#include "TextEditor.h"
|
||||||
static TextEditor editor;
|
TextEditor editor;
|
||||||
|
|
||||||
#include "UserInterfaceManager.h"
|
#include "UserInterfaceManager.h"
|
||||||
#define PLOT_ARRAY_SIZE 180
|
#define PLOT_ARRAY_SIZE 180
|
||||||
@@ -85,14 +85,14 @@ void SetNextWindowVisible(ImVec2 pos, ImVec2 size, float margin = 180.f);
|
|||||||
const std::chrono::milliseconds timeout = std::chrono::milliseconds(4);
|
const std::chrono::milliseconds timeout = std::chrono::milliseconds(4);
|
||||||
static std::atomic<bool> fileDialogPending_ = false;
|
static std::atomic<bool> fileDialogPending_ = false;
|
||||||
|
|
||||||
static std::vector< std::future<std::string> > saveSessionFileDialogs;
|
std::vector< std::future<std::string> > saveSessionFileDialogs;
|
||||||
static std::vector< std::future<std::string> > openSessionFileDialogs;
|
std::vector< std::future<std::string> > openSessionFileDialogs;
|
||||||
static std::vector< std::future<std::string> > importSessionFileDialogs;
|
std::vector< std::future<std::string> > importSessionFileDialogs;
|
||||||
static std::vector< std::future<std::string> > fileImportFileDialogs;
|
std::vector< std::future<std::string> > fileImportFileDialogs;
|
||||||
static std::vector< std::future<std::string> > recentFolderFileDialogs;
|
std::vector< std::future<std::string> > recentFolderFileDialogs;
|
||||||
static std::vector< std::future<std::string> > recordFolderFileDialogs;
|
std::vector< std::future<std::string> > recordFolderFileDialogs;
|
||||||
|
|
||||||
static std::vector< std::future<FrameGrabber *> > _video_recorders;
|
std::vector< std::future<FrameGrabber *> > _video_recorders;
|
||||||
FrameGrabber *delayTrigger(FrameGrabber *g, std::chrono::milliseconds delay) {
|
FrameGrabber *delayTrigger(FrameGrabber *g, std::chrono::milliseconds delay) {
|
||||||
std::this_thread::sleep_for (delay);
|
std::this_thread::sleep_for (delay);
|
||||||
return g;
|
return g;
|
||||||
@@ -1181,7 +1181,7 @@ void UserInterface::RenderPreview()
|
|||||||
else
|
else
|
||||||
openInitializeSystemLoopback = true;
|
openInitializeSystemLoopback = true;
|
||||||
}
|
}
|
||||||
else {
|
else if (webcam_emulator_ != nullptr) {
|
||||||
webcam_emulator_->stop();
|
webcam_emulator_->stop();
|
||||||
webcam_emulator_ = nullptr;
|
webcam_emulator_ = nullptr;
|
||||||
}
|
}
|
||||||
@@ -1651,15 +1651,18 @@ void UserInterface::RenderMetrics(bool *p_open, int* p_corner, int *p_mode)
|
|||||||
ImGui::Text("%s", GstToolkit::time_to_string(time_-start_time_1_, GstToolkit::TIME_STRING_FIXED).c_str());
|
ImGui::Text("%s", GstToolkit::time_to_string(time_-start_time_1_, GstToolkit::TIME_STRING_FIXED).c_str());
|
||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
ImGui::SameLine(0, 10);
|
ImGui::SameLine(0, 10);
|
||||||
|
ImGui::PushID( "timermetric1" );
|
||||||
if (ImGuiToolkit::IconButton(12, 14))
|
if (ImGuiToolkit::IconButton(12, 14))
|
||||||
start_time_1_ = time_; // reset timer 1
|
start_time_1_ = time_; // reset timer 1
|
||||||
|
ImGui::PopID();
|
||||||
ImGuiToolkit::PushFont(ImGuiToolkit::FONT_LARGE);
|
ImGuiToolkit::PushFont(ImGuiToolkit::FONT_LARGE);
|
||||||
ImGui::Text("%s", GstToolkit::time_to_string(time_-start_time_2_, GstToolkit::TIME_STRING_FIXED).c_str());
|
ImGui::Text("%s", GstToolkit::time_to_string(time_-start_time_2_, GstToolkit::TIME_STRING_FIXED).c_str());
|
||||||
ImGui::PopFont();
|
ImGui::PopFont();
|
||||||
ImGui::SameLine(0, 10);
|
ImGui::SameLine(0, 10);
|
||||||
|
ImGui::PushID( "timermetric2" );
|
||||||
if (ImGuiToolkit::IconButton(12, 14))
|
if (ImGuiToolkit::IconButton(12, 14))
|
||||||
start_time_2_ = time_; // reset timer 2
|
start_time_2_ = time_; // reset timer 2
|
||||||
|
ImGui::PopID();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ImGuiToolkit::PushFont(ImGuiToolkit::FONT_MONO);
|
ImGuiToolkit::PushFont(ImGuiToolkit::FONT_MONO);
|
||||||
@@ -1987,7 +1990,7 @@ SourceController::SourceController() : min_width_(0.f), h_space_(0.f), v_space_(
|
|||||||
timeline_height_(0.f), scrollbar_(0.f), mediaplayer_height_(0.f), buttons_width_(0.f),
|
timeline_height_(0.f), scrollbar_(0.f), mediaplayer_height_(0.f), buttons_width_(0.f),
|
||||||
active_label_(LABEL_AUTO_MEDIA_PLAYER), active_selection_(-1),
|
active_label_(LABEL_AUTO_MEDIA_PLAYER), active_selection_(-1),
|
||||||
selection_context_menu_(false), selection_mediaplayer_(nullptr), selection_target_slower_(0), selection_target_faster_(0),
|
selection_context_menu_(false), selection_mediaplayer_(nullptr), selection_target_slower_(0), selection_target_faster_(0),
|
||||||
mediaplayer_active_(nullptr), mediaplayer_mode_(false), mediaplayer_slider_pressed_(false), mediaplayer_timeline_zoom_(1.f)
|
mediaplayer_active_(nullptr), mediaplayer_edit_fading_(false), mediaplayer_mode_(false), mediaplayer_slider_pressed_(false), mediaplayer_timeline_zoom_(1.f)
|
||||||
{
|
{
|
||||||
info_.setExtendedStringMode();
|
info_.setExtendedStringMode();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ class Primitive;
|
|||||||
class Scene;
|
class Scene;
|
||||||
class Surface;
|
class Surface;
|
||||||
class ImageSurface;
|
class ImageSurface;
|
||||||
class MediaSurface;
|
|
||||||
class FrameBufferSurface;
|
class FrameBufferSurface;
|
||||||
class LineStrip;
|
class LineStrip;
|
||||||
class LineSquare;
|
class LineSquare;
|
||||||
@@ -54,7 +53,6 @@ public:
|
|||||||
// not mandatory for all others
|
// not mandatory for all others
|
||||||
virtual void visit (Surface&) {}
|
virtual void visit (Surface&) {}
|
||||||
virtual void visit (ImageSurface&) {}
|
virtual void visit (ImageSurface&) {}
|
||||||
virtual void visit (MediaSurface&) {}
|
|
||||||
virtual void visit (FrameBufferSurface&) {}
|
virtual void visit (FrameBufferSurface&) {}
|
||||||
virtual void visit (LineStrip&) {}
|
virtual void visit (LineStrip&) {}
|
||||||
virtual void visit (LineSquare&) {}
|
virtual void visit (LineSquare&) {}
|
||||||
|
|||||||
Reference in New Issue
Block a user