小编Avi*_*vio的帖子

在Win/Linux/MacOSX/Android/IOS上寻找用于跨平台开发的OpenGL ES框架

我必须开发一个可在Windows,Linux,MacOSX,Android和IOS上运行的跨平台多媒体应用程序.此应用程序必须能够播放音频/视频内容,显示照片和图形,并可能显示简单的2D动画.经过大量的搜索,似乎问题的"最便携的方法"是C++用作语言和OpenGL ES绘图API,因为几乎任何一对设备/操作系统都支持它们,性能水平会很好并且视觉外观应该在每个(一组)设备上几乎相同.

显然,我知道我必须调整应用程序的外观,以便在具有不同显示尺寸和分辨率的不同设备上"缩放".我也知道,对于这种不同架构上的任何代码要求完全相同的行为是不现实的.我只想最小化编写的代码(例如,首先在C++中重写一个接口,然后在Java中必须避免).

我不是OpenGL ES编程的专家,但是看一些样本,似乎我需要一个框架来制作一些现成的小部件(菜单,按钮,文本框).我宁愿不重新发明轮子.

这是一个低预算项目,所以我需要一个完全免费且开源的框架.当重要的东西丢失或行为不端时,后一个要求也允许自由添加/修改框架的API.我不是要求多用途框架(例如Qt),能够处理输入,网络,存储等,只是因为我强烈怀疑我提到的平台不存在这样的框架.我只想要一种OpenGL包装器能够抽象出它的许多低级细节,但也提供了一些像Qt那样的UI小部件.我将分别处理输入,网络,存储,传感器,可能使用其他跨平台开源库,如此处所示.

我在Stackoverflow和Gamedev上已经阅读了很多类似的问题,我听说过很多框架(Unity,Corona SDK,LÖVE,LibGDX,Ogre,Cocos2D-x),主要是为游戏开发而创建的.例如,Ogre和Cocos2D-x似乎符合我的一些要求,但如果我决定使用其中一个,我将必须编写几乎所有的UI元素(没有这么大的负担,有人可能会争辩).

几点评论:

  • 应用程序是2D,因此OpenGL可能看起来有点过分.但是,选择OpenGL ES是因为它具有非常好的可移植性和高性能水平,即使在旧硬件上也是如此.
  • 我基本上是一个Linux C++开发人员,所以我不希望切换到HTML5(仍然太年轻)或.NET/Mono(效率较低)而没有显着的优势.而且,我无法在短时间内掌握这些语言.
  • 我对本文中的故事印象深刻.我相信这可能是正确的方法:开源工具和适合项目需求的库的混合.但我仍然缺少最重要的部分:图形框架.
  • 写这个问题,我发现了这个令人沮丧的答案.我希望我的要求不会产生空集.我真的不能affort保持ñ在不同的UI ñ不同的平台.我真的需要一些与平台无关的东西.

任何帮助或建议将不胜感激.

c++ android cross-platform opengl-es ios

18
推荐指数
1
解决办法
9570
查看次数

Eclipse:函数'to_string'无法解析

可能重复:
关闭eclipse错误(这不是真正的错误)

我正面临这个恼人的问题:Eclipse拒绝识别该std::to_string函数,但我的程序编译没有错误.我错过了什么?

根据cppreference,std::to_string函数被定义<string>,因此我将其明确地包含在被控制的.cpp文件中.我也试过这个,这个这个解决方案,没有运气.

还有其他建议吗?

编辑:

我在Linux下使用g ++ 4.7.2.

c++ eclipse eclipse-cdt c++11

13
推荐指数
2
解决办法
2万
查看次数

QML Row vs. RowLayout

我正在尝试为我的应用程序编写一个顶部栏,主要应该包含应用程序徽标(一个小图像)和应用程序标题(只是文本).此外,我希望这个顶栏可以根据窗口的高度自动调整大小.

我是QML的新手,但我想我应该将这些组件包装在一个Row或一个RowLayout组件中.这是我的示例代码:

import QtQuick 2.0
import QtQuick.Layouts 1.0

Rectangle
{
    id: mainwindow
    width: 1024
    height: 600

    Row
    {
        id: rowlayout
        height: logoimage.height
        spacing: 5

        property int count: 3

        anchors
        {
            left: parent.left
            right: parent.right
            top: parent.top
        }   

        Image
        {   
            id: logoimage
            source: "qrc:/images/resources/images/icon.png"
            height: mainwindow.height / 20
            anchors.top: parent.top
            anchors.left: parent.left
        }   
        Text
        {   
            id: logotext
            text: qsTr("This is my logo text")
            font.pixelSize: parent.height
            font.family: "Sans Serif"
            height: parent.height
            verticalAlignment: Text.AlignVCenter
            anchors.top: parent.top
            anchors.left: logoimage.right
        } …
Run Code Online (Sandbox Code Playgroud)

layout row qml qt5

11
推荐指数
1
解决办法
2万
查看次数

带有-static和-rdynamic的backtrace_symbols()

看看这个问题这个问题,我可以看到,为了backtrace_symbols()工作,必须用-rdynamic旗子编译.

我试过它变成一个测试程序和它的作品,但我正在写也与编译的程序-static这个页面说,backtrace_symbols()当不工作-static被传递到编译器/连接.

有没有快速的解决方法,或者我的静态链接程序中永远不会有人类可读的回溯功能?

c c++ symbols backtrace static-linking

10
推荐指数
1
解决办法
4792
查看次数

支持颜色的"更多"命令替代方案?

这是我在Linux中排名前十的烦人之物.我喜欢终端的彩色输出:阅读时看起来很有用,也很有用.

我在新系统上做的第一件事是为两者设置别名lsgrep显示彩色输出,第二件是安装vimhtop.

我同时使用Gentoo和Ubuntu,我看到,emergeGentoo的包管理器具有更高的可读性,而apt-get/aptitude不仅仅因为它使用了比后者更多的颜色输出.

因此,每当我必须使用emerge命令时more,所有颜色都会丢失,我必须将注意力集中在每一行上以避免遗漏任何重要的内容.

我可以理解,一个基本的命令,如more不应该依赖ncurses(有人可能会说我们也有less,所以这两个中的一个甚至可以是颜色友好的),但为什么没有一个着名的替代品more支持颜色,因为有对vi/vim,top/htop等等?

谢谢你的任何提示.

linux shell command-line colors ncurses

7
推荐指数
1
解决办法
8657
查看次数

如何使用纹理改善 StereoSGBM 结果

所以我正在为一个高中项目的 6Dof 做立体 360。我的视差结果不错,但我想知道是否有办法让它们变得更好,特别是它们如何处理纹理。随着点越来越远,视差图应该逐渐消失,但是,因为 StereoSGBM 不能很好地处理纹理,所以远处的点不合理地接近。天空也应该是黑色的,但它很亮。

视差图: 视差图

我正在使用 StereoSGBM 获取 2 个 Ricoh Theta SC 相机的视差图。我已经尝试调整视差设置并使用输入图像的亮度和对比度进行播放。我还尝试过更改 StereoSGBM 模式(HH、SGBM、SGBM_3WAY)、翻转输入图像以及使用 StereoBM 而不是 SGBM。我没有尝试校准相机(除了移动图像使相机指向完全相同的方向),因为我认为如果相机校准是一个问题,我会得到更糟糕的结果。除了 StereoSGBM 之外,还有其他一些我可以使用的视差函数可以让我获得更好的结果。我应该尝试将机器学习与 Google Cloud 结合使用来创建更好的视差模型吗?我可以给我们纽约大学深度数据集(https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html) 来训练模型。有没有人对如何改善我的结果有任何想法?

import numpy as np
import cv2 as cv
from sklearn.preprocessing import normalize
from PIL import Image, ImageEnhance, ImageOps


def func_disparity(window_size, minDisparity2, numDisparities2, blockSize2, 
    disp12MaxDiff2, uniquenessRatio2, speckleWindowSize2, speckleRange2, 
    preFilterCap2, brightness,
    contrast, event=None):

    imgR = Image.open(FILE_NAME)
    imgL = Image.open(FILEN_NAME)
    print(imgL.size)

    imgL = ImageOps.expand(imgL, border=50)
    imgR = ImageOps.expand(imgR, border=50)    
    
    contrastL = ImageEnhance.Contrast(imgL)
    contrastR = …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

5
推荐指数
0
解决办法
1582
查看次数

Gnuplot 中的过程

有没有办法在 Gnuplot 中使用程序(或类似 C 的函数)?我需要一些非常简单的东西,就像:

function func1()
{
 var1 = "string1";
 var2 = var1."string2";

 return var2;
}
Run Code Online (Sandbox Code Playgroud)

使我的 gnuplot 脚本更加紧凑​​。

procedure gnuplot function

4
推荐指数
1
解决办法
5841
查看次数

如何编译Hinnant的short_alloc分配器

我想尝试新的Hinnant的short_alloc分配器,据我所知,它取代了旧的stack_alloc分配器.但是,我无法编译矢量示例.g++说:

~# g++ -std=c++11 stack-allocator-test.cpp -o stack-allocator-test
In file included from stack-allocator-test.cpp:6:0:
short_alloc.h:11:13: error: ‘alignment’ is not a type
short_alloc.h:11:22: error: ISO C++ forbids declaration of ‘alignas’ with no type [-fpermissive]
short_alloc.h:11:22: error: expected ‘;’ at end of member declaration
Run Code Online (Sandbox Code Playgroud)

据我所知,g++抱怨line 1011:

static const std::size_t alignment = 16;
alignas(alignment) char buf_[N];
Run Code Online (Sandbox Code Playgroud)

似乎编译器不喜欢alignas的"表达式版本",但它只需要"type-id版本".

g++ 4.7.2在Ubuntu 12.10下使用.

~# g++ --version
g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
Run Code Online (Sandbox Code Playgroud)

可能我错过了一些明显的东西,但我无法弄清楚.任何帮助,将不胜感激.(请不要告诉我,我必须升级到更新g++ …

c++ heap stack memory-management c++11

4
推荐指数
1
解决办法
596
查看次数

在QML中使用std :: string

我有一个STL代码库需要在QtQuick 2.0应用程序(图形界面)和纯粹的STL应用程序(服务器)之间共享.接口可以从共享STL代码库派生其类,因此它可以具有Q_PROPERTYs,信号,槽等,但共享数据结构需要保持仅STL.

我想避免数据重复(std::string- > QString等)所以我试图std::stringQ_PROPERTY系统内直接使用.使用Q_DECLARE_METATYPE(std::string)qRegisterMetaType<std::string>();声明属性,如:

Q_PROPERTY(QString stldata READ stldata WRITE setSTLData NOTIFY stldataChanged)
Run Code Online (Sandbox Code Playgroud)

使我的代码编译,但QML仍然不喜欢std::strings.

用以下内容编写文本字段:

Text
{
 text: myserviceinterface.stldata
}
Run Code Online (Sandbox Code Playgroud)

Unable to assign std::string to QString在附加现有QML字符串时会产生警告:

Text
{
 text: "text: " + myserviceinterface.stldata
}
Run Code Online (Sandbox Code Playgroud)

使Text控制显示变得怪异QVariant(std::string).

我究竟做错了什么?

c++ qstring qt stdstring qml

1
推荐指数
1
解决办法
1958
查看次数