iPad теперь поддерживает OES_texture_half_float
расширение. К сожалению, у меня возникли проблемы с привязкой текстуры с плавающей запятой к объекту фреймбуфера. Вот моя попытка:
GLuint textureHandle;
glGenTextures(1, &textureHandle);
glBindTexture(GL_TEXTURE_2D, textureHandle);
glTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 256, 256, 0, GL_LUMINANCE, GL_HALF_FLOAT_OES, 0);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
assert(GL_NO_ERROR == glGetError()); // this passes
GLuint fboHandle;
glGenFramebuffers(1, &fboHandle);
glBindFramebuffer(GL_FRAMEBUFFER, fboHandle);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, textureHandle, 0);
assert(GL_FRAMEBUFFER_COMPLETE == glCheckFramebufferStatus(GL_FRAMEBUFFER)); // this asserts
Это отлично работает при замене GL_HALF_FLOAT_OES
на GL_UNSIGNED_BYTE
.
Это ограничение iOS или я что-то делаю неправильно?
-121--1517823- Допустим, у меня есть массив из строк
, например:
string [] foos = {
"abc",
"def",
"ghi"
};
Мне нужна новая коллекция, содержащая каждую строку и ее обратную сторону. Результат должен быть таким:
"abc",
"cba",
"def",
"fed",
"ghi",
"ihg"
Я мог бы просто перебрать массив, но это довольно неуклюже:
string Reverse (string str)
{
return new string (str.Reverse ().ToArray ());
}
List<string> results = new List<string> ();
foreach (string foo in foos) {
results.Add (foo);
results.Add (Reverse(str));
}
Есть ли способ сделать это в LINQ? Что-то вроде
var results = from foo in foos
select foo /* and also */ select Reverse(foo)