小编Pro*_*ude的帖子

人们会喜欢Flash转C#转换器吗?

我想知道是否有很多需要Flash到C#转换器.它将从swf转换所有资产和代码,并输出.png/.mp3/.avi和.cs文件,以便您可以编译它们.

你可以输入swf,选择一些选项,然后就可以了.我可能会认为你可以针对Desktop/DX,Desktop/OpenGL(适用于Mac和Linux),Mobile/Win7,Mobile/MonoTouch进行定位.

我已经设法读取了swf文件格式,并从中获得了有用的信息.

所以,我的观点是:写作需要一段时间,这将是一项艰巨的任务.我应该继续这个项目,还是找一些更有用的东西.

c# flash

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

Xlib中心窗口

我正在编写一个Xlib应用程序,我希望窗口居中.我已经习惯XMoveWindow(desktopWidth - width) / 2, (desktopHeight - height) / 2它,它大致在正确的位置.

然而问题是宽度和高度是客户区域,而不是总面积.有什么方法让我得到窗口的总面积?

我需要使用,Xlib因为我正在使用GlxOpenGL.我不想使用SDL,也没有庞大的图形库.

linux x11 xlib

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

与Linux中的本机库互操作

我正在用C#编写一个应用程序,它是跨平台的.它DllImport用于几个不同的库.它也是x32和x64.它似乎适用于我自己编译的.dll/.so.我将x32共享库放在x32子文件夹中,将x64共享库放在x64子文件夹中.

在Windows上通过.net框架我调用SetDllDirectory("x32" or "x64")取决于当前运行时.在mono上,通过windows,linux或mac,我DllMap在RandomLibrary.dll.config中使用了一个.它适用于位于x32或x64目录中的文件.

但是,我也DllImport用于我没有编写的库,例如FreeType2.在Windows上,我只是将构建的库推送到两个子文件夹中.但是在Linux上我宁愿使用你可以通过友好的本地包管理器安装的libfreetype6库.我可以将DllMap链接硬编码为/usr/lib/x86_64-linux-gnu/libfreetype.so.6,但我认为freetype文件会根据你使用的发行版而改变.

有什么简单的方法,它可以找到libfreetype.so无论我使用什么发行版?

c# mono dllimport

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

嵌入式IronPython安全性

我将IronPython嵌入到我的游戏引擎中,您可以在其中将脚本附加到对象.我不希望脚本能够随时访问CLR,因为它们几乎可以做任何事情.

拥有随机脚本,特别是从互联网上下载,能够打开互联网连接,访问用户硬盘或修改内部游戏状态是一件非常糟糕的事情.

通常人们会建议"使用单独的AppDomain".但是,除非我严重错误,否则跨AppDomains会很慢.非常慢.游戏引擎太慢了.所以我在寻找其他选择.

我想过编译一个自定义版本的IronPython会阻止你导入clr或任何命名空间,从而限制它到标准库.

我宁愿选择的选项如下:

__builtins__.__import__ = None #Stops imports working
reload = None #Stops reloading working (specifically stops them reloading builtins
          #giving back an unbroken __import___!
Run Code Online (Sandbox Code Playgroud)

我在另一个堆栈溢出帖子中读到了这个.假设不是设置__ builtins_ ._ import__为none,我将其设置为自定义函数,允许您加载标准API.

问题是,使用上面概述的方法,脚本能否有任何方式能够访问clr模块,.net BCL或其他任何可能造成坏处的事情?或者我应该修改源代码?第三种选择?

c# embed security ironpython

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

glsl向量*矩阵与hlsl不同

我有两个(相同的)着色器,一个在 hlsl 中,一个在 glsl 中。在像素着色器中,我将向量乘以矩阵以进行法线变换。代码本质上是:

HLSL

float3 v = ...;
float3x3 m = ...;
float3 n = mul(v, m);
Run Code Online (Sandbox Code Playgroud)

GLSL

vec3 v = ...;
mat3 m = ...;
vec3 n = v * m;
Run Code Online (Sandbox Code Playgroud)

这应该执行行向量乘法,但在 glsl 中却没有。如果我明确地输入算法,它对两者都适用。据我所知,glsl 和 hlsl 规范都表示,如果向量位于左侧(事实确实如此),则它们应该执行行向量乘法。

另一个令人困惑的事情是,我在顶点着色器中将向量乘以矩阵,向量在左侧,但这在 glsl 和 hlsl 中都可以正常工作。这让我猜测这只是片段/像素着色器中的问题。

我使用以下方法将矩阵从顶点着色器传递到片段着色器:

out vec3 out_vs_TangentToWorldX;
out vec3 out_vs_TangentToWorldY;
out vec3 out_vs_TangentToWorldZ;

out_vs_TangentToWorldX = tangent * world3D;
out_vs_TangentToWorldY = binormal * world3D;
out_vs_TangentToWorldZ = normal * world3D;
Run Code Online (Sandbox Code Playgroud)

在片段着色器中我用以下命令重建它:

in vec3 out_vs_TangentToWorldX;
in vec3 out_vs_TangentToWorldY;
in vec3 out_vs_TangentToWorldZ; …
Run Code Online (Sandbox Code Playgroud)

shader vector glsl matrix hlsl

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

在OpenGL中分离帧缓冲区和深度缓冲区

在DirectX中,您可以拥有单独的渲染目标和深度缓冲区,因此您可以绑定渲染目标和深度缓冲区,执行一些渲染,移除深度缓冲区,然后使用旧的深度缓冲区作为纹理进行更多渲染.

你会如何在opengl中解决这个问题?根据我的理解,你有一个framebuffer对象,它包含颜色缓冲区和可选的深度缓冲区.我不认为我可以同时绑定几个帧缓冲对象,我是否必须在每次更改时重新创建帧缓冲对象(可能是帧的几次)?普通的opengl程序如何做到这一点?

opengl framebuffer depth-buffer

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

标签 统计

c# ×3

depth-buffer ×1

dllimport ×1

embed ×1

flash ×1

framebuffer ×1

glsl ×1

hlsl ×1

ironpython ×1

linux ×1

matrix ×1

mono ×1

opengl ×1

security ×1

shader ×1

vector ×1

x11 ×1

xlib ×1