小编Jef*_*oom的帖子

Android OpenGL ES和2D

嗯,这是我的要求.我不知道OpenGL,我不愿意学习它,我想直接学习OpenGL ES,因为我的目标是将我的开发定位到android.我想学习OpenGL ES以开发我的2D游戏.我选择它用于演出目的(因为基本的SurfaceView绘图在RT游戏方面效率不高).我的问题是:从哪里开始?我花了一个多月的时间浏览谷歌并阅读/尝试我在任何地方找到的一些教程/示例,但说实话,它没有多大帮助,这有两个原因:

  1. 我遇到的几乎所有文章/教程都是3D相关的(我只想学习如何进行2D Sprites绘图)
  2. 没有任何基础可以开始,因为所有文章都针对特定的事情,例如:"如何绘制三角形(带顶点)","如何创建网格"......等等.

我也尝试过阅读一些源代码(例如:replica island),但代码太复杂了,并且包含很多不必要的东西; 结果:我迷失了100个带有奇怪类名和东西的.java文件.

我想没有像我正在寻找的那样的课程,但是我会很高兴如果有人能给我一些指导和一些链接可能会了解我的目标(只有OpenGL ES 2D Sprites渲染!没什么3D ).

android 2d opengl-es

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

C++预处理器__VA_ARGS__参数个数

简单的问题,我无法在网上找到答案.在可变参数宏中,如何查找参数的数量?如果它有解决方案,我可以使用boost预处理器.

如果它有所不同,我试图转换可变数量的宏参数来增强预处理器序列,列表或数组以进行进一步的重新处理.

c c++ c-preprocessor variadic-macros

90
推荐指数
8
解决办法
10万
查看次数

解开std :: type_info :: name的结果

我目前正在研究一些日志代码,它们应该 - 除其他外 - 打印有关调用函数的信息.这应该相对容易,标准C++有一个type_info类.它包含typeid'd类/函数/ etc的名称.但它被破坏了.它不是很有用.即typeid(std::vector<int>).name()回归St6vectorIiSaIiEE.

有没有办法从中产生有用的东西?就像std::vector<int>上面的例子一样.如果它只适用于非模板类,那也没关系.

该解决方案应该适用于gcc,但如果我可以移植它会更好.这是为了记录所以它不是那么重要,它不能被关闭,但它应该有助于调试.

c++ gcc name-mangling

85
推荐指数
6
解决办法
4万
查看次数

在Windows应用程序中显示控制台

有没有办法在Windows应用程序中显示控制台?

我想做这样的事情:

static class Program
{
    [STAThread]
    static void Main(string[] args) {
        bool consoleMode = Boolean.Parse(args[0]);

        if (consoleMode) {
            Console.WriteLine("consolemode started");
            // ...
        } else {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# console winforms

80
推荐指数
5
解决办法
14万
查看次数

是否可以使用foreach从第一个元素开始迭代?

我正在考虑为我的自定义集合(树)实现IEnumerable,所以我可以使用foreach来遍历我的树.但据我所知,foreach总是从集合的第一个元素开始.我想选择foreach从哪个元素开始.有可能以某种方式改变foreach开始的元素吗?

c# ienumerable iterator

75
推荐指数
3
解决办法
5万
查看次数

如何将Java 8流收集到Guava ImmutableCollection中?

我想做以下事情:

List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但是在某种程度上,结果列表是Guava的实现ImmutableList.

我知道我能做到

List<Integer> list = IntStream.range(0, 7).collect(Collectors.toList());
List<Integer> immutableList = ImmutableList.copyOf(list);
Run Code Online (Sandbox Code Playgroud)

但是我想直接收集它.我试过了

List<Integer> list = IntStream.range(0, 7)
    .collect(Collectors.toCollection(ImmutableList::of));
Run Code Online (Sandbox Code Playgroud)

但它引发了一个例外:

com.google.common.collect.ImmutableCollection.add(ImmutableCollection.java:96)中的java.lang.UnsupportedOperationException

guava java-8 java-stream

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

完成后继续onCreate流程()

我想从onCreate方法内部完成一个活动.当我打电话时finish(),onDestroy()没有立即调用,代码不断流过finish().onDestroy()直到onCreate()结束括号后才调用.

根据onCreate()developer.android.com/reference上的说明.

您可以在此函数中调用finish(),在这种情况下,将立即调用onDestroy(),而不执行任何其余的活动生命周期(onStart(),onResume(),onPause()等).

我问的原因是:我想检查传递给Bundle的数据onCreate().当然我可以控制传递的内容onCreate,但我仍然认为应该在交付时进行检查.

我的代码包含class A,它启动Activity B.我认为不应该调用最后两个"if of clause子句"标签,因为语句中的finish方法if应该销毁了活动.它与if子句无关,因为第二次finish()调用后的标记行仍然被读取.

我的代码:

A级

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    // goToBButton: when pressed sends message to class B.    
    Button goToBButton = (Button)this.findViewById(R.id.go_to__b_btn);
    goToBButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick (View v) {      
            Log.i(TAG,"A Class: goToBButton, onClick");
            Intent i = new Intent(A.this, B.class);
            startActivityForResult(i,REQ_TO_B);
        } …
Run Code Online (Sandbox Code Playgroud)

android oncreate

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

5年后,还有比"最快可能的C++代表"更好的东西吗?

我知道"C++代表"的主题已经完成,而http://www.codeproject.comhttp://stackoverflow.com都深深地涵盖了这个问题.

一般来说,似乎Don Clugston最快的代表是许多人的首选.还有一些其他流行的.

但是,我注意到这些文章中的大多数都是旧的(大约在2005年),并且许多设计选择似乎都是考虑到VC7之类的旧编译器.

我需要一个非常快速的代理实现音频应用程序.

我仍然需要它可移植(Windows,Mac,Linux),但我只使用现代编译器(VC9,VS2008 SP1和GCC 4.5.x中的编译器).

我的主要标准是:

  • 一定要快!
  • 它必须与更新版本的编译器向前兼容.我对Don的实施有一些疑问,因为他明确表示它不符合标准.
  • 可选地,KISS语法和易用性很好
  • 多播会很好,虽然我确信在任何委托库中构建它真的很容易

此外,我真的不需要异国情调的功能.我只需要一个好的旧指针到方法的东西.无需支持静态方法,自由函数或类似的东西.

截至今天,推荐的方法是什么?仍然使用唐的版本?或者是否存在关于另一种选择的"社区共识"?

我真的不想使用Boost.signal/signal2,因为它在性能方面是不可接受的.对QT的依赖也是不可接受的.

此外,我在google搜索时看到了一些较新的库,例如cpp-events,但我找不到任何来自用户的反馈,包括SO.

c++ performance delegates

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

为什么T在Collections.max()签名中受Object限制?

刚刚完成了Java 7的java.util.Collections类的实现,看到了一些我不理解的东西.在max函数签名中,为什么T受限于Object

public static <T extends Object & Comparable<? super T>> T max(Collection<? extends T> coll) {
    Iterator<? extends T> i = coll.iterator();
    T candidate = i.next();

    while (i.hasNext()) {
        T next = i.next();
        if (next.compareTo(candidate) > 0)
            candidate = next;
    }
    return candidate;
} 
Run Code Online (Sandbox Code Playgroud)

max 如果省略Object绑定似乎工作正常.

public static <T extends Comparable<? super T>> T max(Collection<? extends T> coll) {
    Iterator<? extends T> i = coll.iterator();
    T candidate = i.next();

    while (i.hasNext()) …
Run Code Online (Sandbox Code Playgroud)

java generics

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

链接旧版本的libc以提供更大的应用程序覆盖率

Linux二进制文件通常动态链接到核心系统库(libc).这使得二进制文件的内存占用空间非常小,但依赖于最新库的二进制文件将无法在较旧的系统上运行.相反,链接到旧库的二进制文件将在最新系统上运行愉快.

因此,为了确保我们的应用程序在分发期间具有良好的覆盖率,我们需要找出我们可以支持的最旧的libc并将我们的二进制文件链接起来.

我们应该如何确定我们可以链接到的最旧版本的libc?

linux linker libc

64
推荐指数
4
解决办法
3万
查看次数