我试图在谷歌上研究这个问题,但似乎没有任何连贯的简单答案.这是因为它不简单,还是因为我没有使用正确的关键字?
然而,这是我迄今取得的进步.
init类似于以下内容:
glClearColor(0.0, 0.0, 0.0, 0.0);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glGenTextures(1, textureIds);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
int i, j;
GLubyte pixel;
for (i = 0; i < TEXTURE_HEIGHT; i++)
{
for (j = 0; j < TEXTURE_WIDTH; j++)
{
pixel = ((((i & 0x8) == 0) ^ ((j & 0x8) == 0)) * 255);
texture[i][j][0] = pixel;
texture[i][j][1] = pixel;
texture[i][j][2] = pixel;
texture[i][j][3] = 200;
}
}
glBindTexture(GL_TEXTURE_2D, textureIds[0]);
glTexParameterf(GL_TEXTURE_2D, …Run Code Online (Sandbox Code Playgroud) 我正在尝试加载具有 RGBA 值的纹理,但 alpha 值似乎只是使纹理更白,而不是调整透明度。我听说过 3D 场景有这个问题,但我只是使用 OpenGL 来处理 2D。我能解决这个问题吗?
我正在初始化 OpenGL
glViewport(0, 0, winWidth, winHeight);
glDisable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDisable(GL_DEPTH_TEST);
glClearColor(0, 0, 0, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, winWidth, 0, winHeight); // set origin to bottom left corner
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glColor3f(1, 1, 1);
Run Code Online (Sandbox Code Playgroud)
截屏:
那个褪色的点图像应该是半透明的。黑色部分应该是完全透明的。正如您所看到的,它后面有一个图像没有显示出来。
生成该纹理的代码相当冗长,因此我将描述我所做的事情。这是一个 40*30*4 的 unsigned char 类型的数组。每第 4 个字符设置为 128(应该是 50% 透明,对吧?)。
然后我将其传递到此函数中,将数据加载到纹理中:
void Texture::Load(unsigned char* data, GLenum format) {
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _texID);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, _w, _h, format, GL_UNSIGNED_BYTE, data);
glDisable(GL_TEXTURE_2D);
}
Run Code Online (Sandbox Code Playgroud)
而且...我想我刚刚发现了问题。使用以下代码初始化全尺寸纹理:
glEnable(GL_TEXTURE_2D); …Run Code Online (Sandbox Code Playgroud) 我目前希望使用PropertyGrid来允许用户编辑我的一些类,但是我已经碰到了将对象传递给他们使用的UITypeEditor的墙.当用户按下下拉列表时,我想显示已加载纹理的列表框以供选择,如果他们想要使用应用程序尚未加载的纹理,他们可以单击按钮从文件对话框中选择一个.如果我在这里没有意义的形式的模拟:
.
我的问题:要填充列表框,我需要访问管理UITypeEditor资源列表的类.
现在我已经为我自己的类解决了这个问题,给他们一个关于创建它们的管理对象的参考.在UITypeEditor中,我然后使用该引用来访问我需要的内容.但是,对于我没有编写的类,例如XNA Texture2D类,我不能这样做.
以下是我正在使用的类:
class StaticGeometryChunk
{
// Geometry data to draw with. Contains a reference to its managing
// class for use in its UITypeEditor.
public GeometryData { get; set; }
....
}
class Material
{
// These are XNA classes. I can't just add a reference to its managing
// class (I think?).
public Texture2D Texture1 { get; set; }
public Texture2D Texture2 { get; set; }
....
}
Run Code Online (Sandbox Code Playgroud)
我一直在看我的选择,他们似乎是:
我真的不想这样做.有几个管理类,因为每个资源的加载方式不同.还有一些类需要在这些类之前创建并传入.
我也不想这样做.这似乎是一种快速而肮脏的方式来"隐藏"问题而不是"解决"它.我也可能希望将来有一些管理类可供单身人士消除.
关于Client Profile安装的最后一个问题.我下载了Microsoft .NET Framework Client Profile Online Installer,因为我们想将它放在安装CD中,因为我们的最终用户可能没有.net framework 3.5或Internet.所以我们希望能够处理这两种情况.
在先决条件中,我能够选择文件的位置,但我不知道它应该在哪里.我希望能够以某种方式放置CD的路径,例如d:\ ProductName\Prerequisites\DotNetFx35ClientSetup.exe,以便它可以获取它并从那里安装它.有没有人知道如何实现这一目标?
谢谢.
这是先决条件窗口:

我使用标准HTML <input>控件发布多部分表单数据将大文件上载到ASP.NET服务器.这是一个ASP.NET MVC应用程序.
根据MSDN,HttpPostedFile该类缓冲到磁盘开箱即用:
"文件以MIME multipart/form-data格式上传.默认情况下,大于256 KB的所有请求(包括表单字段和上传文件)都缓冲到磁盘,而不是保存在服务器内存中."
我想这意味着,当我访问HttpPostedFileBase我的控制器,当我访问HttpPostedFileBase的InputStream财产,我可以写某个文件缓冲区,而不必担心运行内存的服务器,这显然是一个不可行的解决方案.
这里有一些关于我如何处理每个传入文件的伪代码HttpPostedFileBase.
for(var i = 0; i< Request.Files.Count;i++)
{
var fileBase = Request.Files[i];
if (fileBase.ContentLength == 0)
{
continue;
}
// One thread per file
ThreadPool.QueueUserWorkItem(state =>
{
// Read from fileBase.InputStream
},
null);
}
Run Code Online (Sandbox Code Playgroud)
我的web.config的httpRuntime块如下所示:
<httpRuntime
executionTimeout="1200"
requestLengthDiskThreshold="2097151"
maxRequestLength="2097151"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100" />
Run Code Online (Sandbox Code Playgroud)
我的实现工作,多个文件按预期上传,除了服务器消耗缓冲整个有效负载所需的相同内存量.我必须假设InputStream正在缓冲所有内容.当我上传的文件多于我的内存时,它可以预测会崩溃OutOfMemoryException.这是上传800mb文件时内存峰值的图像.

我知道我可以使用Flash/Silverlight小部件或编写自定义HttpModule来截取上传并自己处理它们,但是如果HttpPostedFileMSDN说它做了什么(或者我做错了),当前的要求将完美无缺.
当我输入新的实例变量时,它们显示为白色.为了将它们变为绿色,我在分号之间做了一个空格/退格.是否有一个XCode秘密自动浏览我的所有类并识别它错过的变量?
类似的问题也发生在整个代码中使用的橙色#define变量.

更新:此问题似乎在雪豹的xcode 3.2中得到解决.
我的网页上有以下JavaScript ...
64 var description = new Array();
65 description[0] = "..."
66 description[1] = "..."
...
78 function init() {
79 document.getElementById('somedivid').innerHTML = description[0];
80 }
81
82 window.onload = init();
Run Code Online (Sandbox Code Playgroud)
在Microsoft Internet Explorer中,它会导致以下错误...
发生了运行时错误.
你想调试吗?行:81
错误:未实现

第79行按预期执行.
如果第79行被注释掉,它仍会抛出错误.
如果我注释掉第82行,那么该函数不会执行,也没有错误.
我正在尝试使用以下结构保存数据:
如您所见,用户和体验表之间存在HABTM关联.另外在experience_users和tags之间有一个HABTM .我创建了以下表单:
<?php echo $form->create('Experience', array('action' => 'addClassic'));?>
<?php
echo $form->input('Experience.date', array('dateFormat' => 'DMY'));
echo $form->input('Experience.time', array('timeFormat' => '24', 'empty' => array(-1 => '---'), 'default' => '-1'));
echo $form->input('Experience.name');
echo $form->input('ExperiencesUser.1.note');
echo $form->input('ExperiencesUser.1.rating');
//echo $form->input('Tags.Tags', array('multiple' => 'multiple', 'options' => $tags));
//echo $form->input('ExperiencesUser.1.Tags', array('multiple' => 'multiple', 'options' => $tags));
//echo $form->input('ExperiencesUser.1.Tags.Tags', array('multiple' => 'multiple', 'options' => $tags));
echo $form->input('ExperiencesUser.1.confirmed', array('type' => 'hidden', 'value' => '1'));
echo $form->input('ExperiencesUser.1.user_id', array('type' => …Run Code Online (Sandbox Code Playgroud) 我的Delaunay三角测量在1000个均匀随机点上的结果看起来并不正确(见图).有些点似乎属于异常高数量的三角形......有什么想法吗?

细节:CGAL 3.4,Windows XP
这是我使用的类型:
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Triangulation_2<K> Triangulation;
typedef Triangulation::Point Point;
Run Code Online (Sandbox Code Playgroud)
显示如下:
delaunay_c::Triangulation::Edge_iterator eit = T.edges_begin();
delaunay_c::Triangulation::Edge_iterator end = T.edges_end();
for(;eit != end; ++eit)
{
delaunay_c::Triangulation::Segment s = T.segment(eit);
line.m_a = delaunay_c::convert(s.source());
line.m_b = delaunay_c::convert(s.target());
line.draw();
}
Run Code Online (Sandbox Code Playgroud)
函数转换只是从CGAL Point转换为另一种点格式
编辑:按照选择的答案,我只是将三角测量改为delaunay_triangulation:
typedef CGAL::Delaunay_triangulation_2<K> Triangulation;
Run Code Online (Sandbox Code Playgroud)
它给了:

我想在Delphi中创建一个具有丰富UI元素且没有VCL的应用程序(除了TForm).每个组件(按钮,列表等)都需要支持完整的每像素alpha,并且无需任何代码即可轻松创建.它应该是可剥皮的并且能够产生类似于adobe air应用的结果.
我尝试过使用GR32(Graphics32),但TImage32的每个实例都占用了太多内存.
您是否知道Delphi 2009的任何框架或组件可以创建一组用于创建丰富UI应用程序的组件?
干杯!
编辑:我的应用程序的当前alpha版本如下所示:

我希望得到类似的结果但不使用每个组件的TImage32(按钮,标签,面板等......)
c++ ×2
opengl ×2
textures ×2
.net ×1
asp.net-mvc ×1
c# ×1
cakephp ×1
cgal ×1
delphi ×1
html ×1
installation ×1
javascript ×1
opacity ×1
propertygrid ×1
uitypeeditor ×1
upload ×1
xcode ×1