我在rackspace上启动了一个CentOS服务器并执行了yum install httpd'd.然后services httpd start.所以,只是准系统.
我可以通过ssh(22)远程访问其IP地址没问题,所以DNS或任何东西都没问题(我认为......),但是当我尝试连接端口80(通过浏览器或其他东西)时,我得到了拒绝连接.
但是,从localhost,我可以使用telnet(80),甚至可以使用lynx,并且可以毫无问题地使用它.从外面(我的房子,我的学校,当地的咖啡店等),telnet连接22,但不是80.
我用netstat -tulpn(< - 我不会撒谎,我不明白这-tulpn部分,但这就是互联网告诉我要做的......)并且看到
tcp 0 0 :::80 :::* LISTEN -
Run Code Online (Sandbox Code Playgroud)
因为我相信我应该.该httpd.conf说Listen 80.
我有services httpd restart很多次.
老实说,我不知道该怎么做.机架空间没有办法在传入的端口80请求上有防火墙.我觉得我失去了一些东西愚蠢的,但我现在已经启动了一个准系统服务器的两倍,并已做了最小,以获得此功能的思考我已经弄脏的东西与我的修修补补,但既不工作.
任何帮助是极大的赞赏!(对于冗长的帖子抱歉...)
编辑
我被要求发布输出iptables -L.所以这里是:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
REJECT …Run Code Online (Sandbox Code Playgroud) 我所在的快速背景(确保我们在同一页面上,如果我失踪/假设有些愚蠢的话,进行健全检查):
这是我目前正在做的事情:
在我最终渲染过程的片段着色器(实际计算最终碎片值的那个)中,我从光源的角度来看传递的MVP矩阵,来自所述传递的深度纹理(又名"阴影贴图"),和我的几何缓冲区中的位置/法线/颜色纹理.
据我所知,我需要找到当前片段位置对应的阴影贴图的UV.我通过以下方式做到这一点:
//Bring position value at fragment (in world space) to screen space from lights POV
vec4 UVinShadowMap = (lightProjMat * lightViewMat * vec4(texture(pos_tex, UV).xyz,1.0)).xy;
//Convert screen space to 'texture space' (from -1to1 to 0to1)
UVinShadowMap = (UVinShadowMap+1)/2;
Run Code Online (Sandbox Code Playgroud)
现在我已经拥有了这个紫外线,我可以从光的pov中获得深刻的"深度"
float depFromLightPOV = texture2D(shadowMap, UVinShadowMap).r;
Run Code Online (Sandbox Code Playgroud)
并将其与当前片段的位置与光线之间的距离进行比较:
float actualDistance = distance(texture2D(pos_tex, UV).xyz, lightPos);
Run Code Online (Sandbox Code Playgroud)
问题来自于"深度"存储在值0-1中,实际距离是世界坐标.我试图手动进行转换,但无法让它工作.在网上搜索,看起来像我应该这样做的方式是使用sampler2DShadow ......
所以这是我的问题:
我需要做什么改变才能使用shadow2D?shadow2D甚至做了什么?它只是或多或少的自动转换 - 从深度到世界的纹理?我可以使用相同的深度纹理吗?或者我需要以不同的方式渲染深度纹理?我将什么传递给shadow2D?我想检查片段的世界空间位置?或者和以前一样的紫外线?
如果所有这些问题都可以在一个简单的文档页面中得到解答,我很乐意,如果有人可以发布这个问题.但我发誓,我一直在寻找几个小时,找不到任何简单的说什么与shadow2D发生了什么!
谢谢!
首先我有
for file in `ls -t dir` ; do
#blah
done
Run Code Online (Sandbox Code Playgroud)
但是带空格的文件被分成两个迭代.
我已经找到了很多修复空间问题的变种,但随后在$file变量中留下了一些日期信息.
编辑:显示一个这样的变化:
for file in `find . -printf "%T@ %Tc %p\n" | sort -n` ; do
#blah
done
Run Code Online (Sandbox Code Playgroud)
这个问题是所有时间信息仍然在$file循环中的变量内.(另外,这不起作用,因为我碰巧在OSX上,其实用find程序缺少-printf选项......)
我正在制作一款需要访问ifaddrs.h的SDL安卓游戏.当我为mac编译时,它工作正常.当我为Android编译时,它说找不到文件.
我试图像这样包含它:
#include <ifaddrs.h>
Run Code Online (Sandbox Code Playgroud)
所以我
gcc -M network.cpp
Run Code Online (Sandbox Code Playgroud)
找到它所包含的文件的依赖项,所以我可以找到ifaddrs的绝对位置,即
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/ifaddrs.h
Run Code Online (Sandbox Code Playgroud)
所以,当我
#include "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/ifaddrs.h"
Run Code Online (Sandbox Code Playgroud)
它找到它,但然后错误包括ifaddrs的一些其他依赖
#include <AvailabilityInternal.h>
Run Code Online (Sandbox Code Playgroud)
好.那么,当我尝试为android vs for mac编译时,为什么包含行为会有所不同?(在mac上使用ndkbuild或g ++)?我怎样才能让它在Android上运行?我想念的是什么知识/信息?
(注意 - 目前正在运行OSX优胜美地,10.10)
所以我希望在编译时知道结构中数组大小的定义.我也希望这个号码可以作为变量使用,以方便以后使用.我所拥有的是以下内容:
const int BANANA_ARRAY_SIZE = 10;
typedef struct
{
char bananas[BANANA_ARRAY_SIZE];
int some_other_stuff;
} banana_struct;
Run Code Online (Sandbox Code Playgroud)
这个功能很好.但是,如果我将它放在一个包含在多个位置的.h文件中,编译器会抱怨重新定义BANANA_ARRAY_SIZE(这是有道理的).所以我需要将它声明为extern,因此多个编译单元可以知道它.
所以,我现在有
extern const int BANANA_ARRAY_SIZE;
typedef struct
{
//.. same as before
} banana_struct;
Run Code Online (Sandbox Code Playgroud)
在我的实施文件中
const int BANANA_ARRAY_SIZE = 10;
Run Code Online (Sandbox Code Playgroud)
但是现在编译器不会让我再次定义结构了
fields must have a constant size: variable length array in structure
Run Code Online (Sandbox Code Playgroud)
有什么方法可以实现我想要的(将数组的长度存储在变量中并用于定义struct)?
编辑:
为了回应使用#defines 的建议,我宁愿不这样做.
我的问题是如何将这个常量值存储在变量中,还用于设置结构中数组的长度.如果你需要进一步的理由,假设我需要一个带有指向int的指针的函数.不能参考#define.
我的代码只是将一些人为的数据上传到纹理:
glActiveTexture(GL_TEXTURE0+gl_sim_texture_active_n);
glBindTexture(GL_TEXTURE_2D, gl_sim_texture_buff_id);
for(int i = 0; i < w*h; i++) buff[i] = 0xAB;
glTexImage2D(GL_TEXTURE_2D,0,GL_ALPHA,w,h,0,GL_ALPHA,GL_UNSIGNED_BYTE,buff);
Run Code Online (Sandbox Code Playgroud)
和我的着色器中仅从该纹理中采样的代码:
uniform vec2 viewport;
uniform sampler2D sim_texture;
void main()
{
vec2 tex_uv = vec2(gl_FragCoord.x/(viewport.x-1.),gl_FragCoord.y/(viewport.y-1.));
gl_FragColor = texture2D(sim_texture,tex_uv).argb; //swizzle is to just put 'a' in a visibly renderable position as "redness"
}
Run Code Online (Sandbox Code Playgroud)
在OSX和Android上,这个纹理在我的着色器中是可读的(通过sampler2D-没什么花哨的) - 它可以工作.在iOS上,vec4(0.,0.,0.,1.)无论放入何种数据,来自该sampler2D的任何样本都会返回.
(请注意,当我更改GL_ALPHA为GL_RGBA,将纹理附加到帧缓冲区,然后glReadPixels在glTexImage2D我确实获取我输入的确切数据后调用,无论平台如何,并且功能(或iOS上的缺乏)保持不变.切换到GL_RGBA只需将它附加到帧缓冲区,这是必要的glReadPixels,我只关心调试目的.tl; dr:我有理由相信数据正在所有平台上正确上传到纹理.)
其他信息:
gl_sim_texture_active_n是6,gl_sim_texture_buff_id是14(都是合法获得的,没有错误).呼叫glGetError()或glCheckFramebufferStatus(GL_FRAMEBUFFER)在两者之前或之后返回清洁.glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS) …
所以我对 gdb 很陌生,刚刚了解到您可以通过以下方式保存断点:
save breakpoints filename
Run Code Online (Sandbox Code Playgroud)
并加载它们
source filename
Run Code Online (Sandbox Code Playgroud)
这很好,但是因为这是我每次进入/退出 gdb 或多或少都计划做的事情,所以我想把它归结为一个快速的别名。
所以,在我的 ~/.gdbinit 中,我有几行
alias savebps = save breakpoints .gdb_bps
alias loadbps = source .gdb_bps
loadbps
Run Code Online (Sandbox Code Playgroud)
不幸的是,每次打开 gdb 时都会出现错误:
Invalid command to alias to: save breakpoints .gdb_bps
Run Code Online (Sandbox Code Playgroud)
我知道(/强烈认为)我的语法是正确的,因为我已经测试过了
alias savebps = help
Run Code Online (Sandbox Code Playgroud)
并且该别名有效。所以我认为将非 gdb 命令字(文件名)作为别名的一部分是一个问题。
所以,我的问题是这样的:
哦,作为注释,'.gdb_bps' 是一个任意文件名,我只是想出了一个很好的不显眼的东西,很容易 .gitignore 和其他东西。
谢谢!
我在这里看到了一个类似的问题:Mavericks下的OpenGL 4.1(?),但似乎这个人依赖过剩,所以解决方案不适用.
我在OSX 10.9 (Mavericks)上,使用GLEW和GLFW,使用C++开发的NVidia GeForce 650.
我没有使用xcode-使用非常基本的makefile保持简单.
无论如何 - 我有这5行代码:
window = glfwCreateWindow(640,480,"hello world",NULL,NULL);
glfwMakeContextCurrent(window);
glewExperimental = GL_TRUE;
glewInit();
printf("shader lang: %s\n",glGetString(GL_SHADING_LANGUAGE_VERSION));
Run Code Online (Sandbox Code Playgroud)
它打印出来
shader lang: 1.2
Run Code Online (Sandbox Code Playgroud)
我假设设置glewExperimental应该正确处理核心上下文?(/另一个人在另一个话题中谈论的东西)
我还需要做些什么来启用最新的着色器版本?
Ps-我的完整代码在这里,包括makefile:https://github.com/Phildo/openglexp,但我不确定它会有多大用处.
我已经掩盖了一些文档,似乎规范只需要'int'或'long'或任何能够保存"至少某些值的范围"(通常对应于由n个字节提供的最大范围).
无论如何,有没有合理的方法来要求一个正好n位/字节的整数?我甚至不需要一种指定任意长度或任何奇怪的方法,我只想要一个明确的2字节或最终4字节的类型.比如"int32"或者其他东西.
目前,我正在处理的方法是使用n长度的char数组,然后将其转换为int*并解除引用.
(我想要这样做的原因与直接从结构中读取/写入文件有关 - 我承认,有了这个,我将不得不担心结构打包和字节顺序以及其中的东西,但这是另一个问题......)
此外,与类似超级有限的嵌入式系统的"兼容性"并不是特别关注的问题.
谢谢!
这是 Core Midi 的(目标 C)文档:https : //developer.apple.com/documentation/coremidi
我怎样才能知道我希望能够在 C++ 项目中使用它?
(我想更根本的问题还在于:灿?我使用的核心MIDI在C ++项目-但我已经看到了其中的答案似乎是“是” [话又说回来,那些从几年前其他计算器问题... ])
我需要做什么来完成这个设置 - 到我可以开始使用 API 的地步?该文档并没有显示使用了哪些框架,需要哪些头文件等......
那么,入门的步骤是什么?
理想情况下,我希望能够从一个简单的 makefile 进行编译。
我不打算将深度缓冲区渲染到纹理,或者查询它以获得阴影或类似的东西 - 我希望基本上创建一个渲染过程,它只是在我的其他绘制调用之前用一些数据预先填充深度缓冲区将利用其内容.但是,我不希望这个"填充深度缓冲区"传递写入颜色缓冲区.
我正在使用OpenGL 2.1(或OpenGL ES 2),带有非固定管道的东西.