Вопрос по игре Vampire The Masqurade: blood lines тем, кто играл
Концовка за анархов. В конце сидит мумия и Джек. Мумия, похоже что дохлая. Но действительно? Или это особый вид вампира/старшие вампиры так и выглядят?
Концовка за анархов. В конце сидит мумия и Джек. Мумия, похоже что дохлая. Но действительно? Или это особый вид вампира/старшие вампиры так и выглядят?
Понадобилось тут на сяомю 4-ку файлики передать, а оно, как и всякий современный андроид без рута этого не умеет (mtp и прочее говноедство не в счёт).
Так оказалось, что хвалёный китайский рут без зондов и малвари (всего и сразу): Kingsroot либо supersu не включается. ЧЯДНТ?
В частности, у меня есть аддон, который добавляет в меню фичу быстрого сохранения рисунка в дефолтную директорию. Я хочу, чтобы после отработки этого аддона сразу вызывалось закрытие текущей вкладки.
Параметры: вид от третьего лица, камера близко к персонажу, а не как в диабле. Возможность играть за женского персонажа. Примеры: КОТОР, Вампиры: маскарад. Но их я относительно недавно прошёл. Игра должна быть не моложе 5 лет.
Масс эффект не предлагать. Если вспомните слешеры, подходящие под описание (кроме heavy metall fakk2) тоже хорошо.
Андроид 7-ка, чистый, без хлама от сторонних производителей. Как оказалось, вопрос установки кастомного рингтона решается исключительно установкой стороннего ПО. И 7-ка даже не рутуется.
Ну вот и в чём теперь разница с несвободной iOS ?
Как называется аналог Wayland в Android-е и насколько он свободен? Где взять сорцы?
В Стокгольм на вызов пациента приехала карета скорой с российскими номерами и персоналом. Как сообщает Aftonbladet, полиция пока не может найти объяснений произошедшему.
Автор фото Монс Юнассон заметил лежащего на земле человека, когда направлялся на встречу с друзьями в ресторан в центре шведской столицы. Вокруг пострадавшего уже столпились люди, и приехала скорая. Молодой человек решил пойти дальше, когда заметил, что у машины медиков российские номера и надпись на русском.
Снимок он разместил в Twitter и спросил, знает ли кто-нибудь, как российская скорая оказалась в Стокгольме. Однако четкого ответа он не получил.
Пруф: http://ren.tv/novosti/2017-12-07/na-vyzov-pacienta-v-shvecii-priehala-rossiys...
Фото там же.
сабж для смартфона
Фаерфокс же новый на расте? Как же так получается, что он активно течёт памятью. «Ржавчина» же, идеально защищает от утечек, не?
В qtextedit если выделить текст и нажать клавишу клавиатуры, вставленный текст заместо выделеннного будет иметь тоже форматирование, что и выделенный текст. Если же пока текст выделен применить настройку текущего форматирования, форматирование изменится для выделенного текста.
Есть ли какой простой способ избежать такого поведения, чтобы вставляемый текст, напрмер, был всегда определённой жирности?
В общем, надо мне чем-то нарисовать трёхмерную геометрическую фигуру. Фигура задаётся следующими параметрами: основание задано двумерной фигурой, периметр которой образован замкнутой последовательностью кривых Безье, вершина задана фигурой, по смыслу такой же как и первая, с ровно таким же количеством кривых Безье, но при этом форма этой фигуры отличается от первой фигуры.
Каждой точке, используемой для построения основания сопоставляется точка, используемая для построения вершины.
Производительность значения не имеет. Можно хоть на ЦПУ рендерить. Но необходим рендеринг освещения, а с этим ЦПУ вряд ли справится.
Поэтому ищу свободный (это важно) графический движок, в котором такие фигуры достаточно просто рисовать, т.е. чтобы я мог забыть про триангуляцию руками и т.д. и т.п., а просто задать по точкам основание и вершину и мне бы срендирилась желаемая фигура, чтобы по-минимумому возиться с инициализацией, настройками и пр.
или Golden Axe или любой другой beat-em up
Какой способ последовательного вызова одной и той же команды для каждой строки из текста наилучший? Про циклы for в баше мне известно, но может есть более короткое для записи решение?
Примерно 5 лет назад читал, что к 2035г.(?) японская компания «Обаяши» собирается построить космический лифт. Не слышно ли чего по этому поводу?
Есть несколько дебетовых карточек, которые ушли в минус из-за неоплаты обслуживания. Вопрос: насколько далеко они могут заминуситься и надо ли их вернуть банку? Очень не хочется ехать в глушь из-за 200р.
SDL_Surface* renderText(const std::string &message, const std::string &fontFile,
SDL_Color color, int fontSize, SDL_Renderer *renderer)
{
static TTF_Font *font = TTF_OpenFont(fontFile.c_str(), fontSize);
SDL_Surface *surf = TTF_RenderText_Blended(font, message.c_str(), color);
return surf;
}
static SDL_Surface* texture_text = //IMG_Load("img.png");
renderText("Hello world!", "font.ttf", {0x00, 0x00, 0xFF, 0xFF}, 16, nullptr);
auto Mode = GL_RGB;
if (texture_text)
{
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
if(texture_text->format->BytesPerPixel == 4)
Mode = GL_RGBA;
}
// set texture parameters
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, Mode, texture_text->w, texture_text->h, 0, Mode, GL_UNSIGNED_BYTE, texture_text->pixels);
SDL2, пытаюсь грузить в этом коде картинку (IMG_Load) - всё хорошо, но в случае текста отображается сплошной красный текст. Ошибок при загрузке шрифта - нет. Куда копать? Есть подозрение, что шрифт, на самом деле отображается, но метровыми буквами.
Правда, картинка тоже отображается перевёрнутой, ужатой до размеров прямоугольника и растянутой по ширине, но это ожидаемо.
Существуют ли в природе библиотки-обёртки над STL, ограничивающиеся заголовочниками и предоставляющие в целом те же возможности что и стандартная библиотека С++, вероятно, с небольшими плюшками, и обладающие той же продуманностью?
Но! При этом, с интерфейсом, предназначенным для рук землян, а не щупалец инопланетных монстров?
Т.е. без подобного маразма, когда прочитать объект типа std::string из std::filestream (сэкономили 3 буквы, молодцы!) std::fstream можно только через статическую функцию, но не член класса std::fstream.
Зато с сахарком, вроде того, чтобы можно было складывать вектора друг с другом или, о боже, разнотипные контенеры. Ну и прочими приятностями, делающими волосы в серые будни, гладкими и шелковистыми.
Пробую разные туториалы по SDL2 + OpenGL. Компиляцией из 2-х туториалов получилось это:
#include <string>
#include <iostream>
// OpenGL / glew Headers
#define GL3_PROTOTYPES 1
#include <GL/glew.h>
// SDL2 Headers
#include <SDL2/SDL.h>
std::string programName = "Headerphile SDL2 - OpenGL thing";
// Our SDL_Window ( just like with SDL2 wihout OpenGL)
SDL_Window *mainWindow;
SDL_Renderer* renderer;
// Our opengl context handle
SDL_GLContext mainContext;
bool SetOpenGLAttributes();
void PrintSDL_GL_Attributes();
void CheckSDLError(int line);
void RunGame();
void Cleanup();
float points[] = {
0.0f, 0.5f, 0.0f,
0.5f, -0.5f, 0.0f,
-0.5f, -0.5f, 0.0f
};
const char* vertex_shader =
"#version 400\n"
"in vec3 vp;"
"void main() {"
" gl_Position = vec4(vp, 1.0);"
"}";
const char* fragment_shader =
"#version 400\n"
"out vec4 frag_colour;"
"void main() {"
" frag_colour = vec4(0.5, 0.0, 0.5, 1.0);"
"}";
GLuint shader_programme;
GLuint vbo = 0;
GLuint vao = 0;
GLuint vs;
GLuint fs;
void init_shaders()
{
shader_programme = glCreateProgram();
vs = glCreateShader(GL_VERTEX_SHADER);
fs = glCreateShader(GL_FRAGMENT_SHADER);
}
void shader_func()
{
init_shaders();
glGenBuffers(1, &vbo);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, 9 * sizeof(float), points, GL_STATIC_DRAW);
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, NULL);
glShaderSource(vs, 1, &vertex_shader, NULL);
glCompileShader(vs);
glShaderSource(fs, 1, &fragment_shader, NULL);
glCompileShader(fs);
glAttachShader(shader_programme, fs);
glAttachShader(shader_programme, vs);
glLinkProgram(shader_programme);
glUseProgram(shader_programme);
glBindVertexArray(vao);
// draw points 0-3 from the currently bound VAO with current in-use shader
glDrawArrays(GL_TRIANGLES, 0, 3);
}
bool Init()
{
// Initialize SDL's Video subsystem
if (SDL_Init(SDL_INIT_VIDEO) < 0)
{
std::cout << "Failed to init SDL\n";
return false;
}
// Create our window centered at 512x512 resolution
mainWindow = SDL_CreateWindow(programName.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
1024, 1024, SDL_WINDOW_OPENGL);
// Check that everything worked out okay
if (!mainWindow)
{
std::cout << "Unable to create window\n";
CheckSDLError(__LINE__);
return false;
}
// Create our opengl context and attach it to our window
mainContext = SDL_GL_CreateContext(mainWindow);
SetOpenGLAttributes();
// This makes our buffer swap syncronized with the monitor's vertical refresh
SDL_GL_SetSwapInterval(1);
// Init GLEW
// Apparently, this is needed for Apple. Thanks to Ross Vander for letting me know
#ifndef __APPLE__
glewExperimental = GL_TRUE;
glewInit();
#endif
shader_func();
renderer = SDL_CreateRenderer(mainWindow, -1, 0);
/* Select the color for drawing. It is set to red here. */
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
/* Clear the entire screen to our selected color. */
SDL_RenderClear(renderer);
return true;
}
bool SetOpenGLAttributes()
{
// Set our OpenGL version.
// SDL_GL_CONTEXT_CORE gives us only the newer version, deprecated functions are disabled
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
// 3.2 is part of the modern versions of OpenGL, but most video cards whould be able to run it
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
// Turn on double buffering with a 24bit Z buffer.
// You may need to change this to 16 or 32 for your system
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
return true;
}
int main(int argc, char *argv[])
{
if (!Init())
return -1;
// Clear our buffer with a black background
// This is the same as :
// SDL_SetRenderDrawColor(&renderer, 255, 0, 0, 255);
// SDL_RenderClear(&renderer);
//
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
SDL_GL_SwapWindow(mainWindow);
RunGame();
Cleanup();
return 0;
}
void RunGame()
{
bool loop = true;
while (loop)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
// draw points 0-3 from the currently bound VAO with current in-use shader
if (event.type == SDL_QUIT)
loop = false;
if (event.type == SDL_KEYDOWN)
{
switch (event.key.keysym.sym)
{
case SDLK_ESCAPE:
loop = false;
break;
case SDLK_r://shader_func();
// Cover with red and update
glClearColor(1.0, 0.0, 0.0, 1.0);
//glClear(GL_COLOR_BUFFER_BIT);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(shader_programme);
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES, 0, 3);
//SDL_RenderCopy();
SDL_RenderPresent(renderer);
SDL_GL_SwapWindow(mainWindow);
break;
case SDLK_g:
// Cover with green and update
glClearColor(0.0, 1.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
SDL_GL_SwapWindow(mainWindow);
break;
case SDLK_b:
// Cover with blue and update
glClearColor(0.0, 0.0, 1.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
SDL_GL_SwapWindow(mainWindow);
break;
default:
break;
}
}
// glfwPollEvents();
// put the stuff we've been drawing onto the display
//glfwSwapBuffers(window);
}
// Swap our back buffer to the front
// This is the same as :
// SDL_RenderPresent(&renderer);
}
}
void Cleanup()
{
// Delete our OpengL context
SDL_GL_DeleteContext(mainContext);
// Destroy our window
SDL_DestroyWindow(mainWindow);
// Shutdown SDL 2
SDL_Quit();
}
void CheckSDLError(int line = -1)
{
std::string error = SDL_GetError();
if (error != "")
{
std::cout << "SLD Error : " << error << std::endl;
if (line != -1)
std::cout << "\nLine : " << line << std::endl;
SDL_ClearError();
}
}
void PrintSDL_GL_Attributes()
{
int value = 0;
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &value);
std::cout << "SDL_GL_CONTEXT_MAJOR_VERSION : " << value << std::endl;
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &value);
std::cout << "SDL_GL_CONTEXT_MINOR_VERSION: " << value << std::endl;
}
В первом туториале рассказывалось, как прикрутить в SDL OpenGL и он работает: окошко окрашивается в красный цвет по нажатию кнопки.
Во втором - как работать с шейдерами. И хотя код выглядит валидным, он не работает, как минимум, внутри SDL. Никакой визуальной реакции на нажатие кнопки. В чём может быть проблема?
//Все претензии по качеству и объёму приведённого кода вы можете высказать авторам туториалов.
что есть из утилит, кроме опции -E у gcc для такого?
В частности, но не только, переименовать все name любого типа в вид с namespace::name. Все struct в класс, развернуть все шаблоны, явно прописать дефолные параметры функции при вызове, удалить все лишние пробелы и т.п. И получить выхлоп в виде текста.
Например, из
MyNamespace
{
struct MyStruct
{
static int func(int c = 0)
{ return c + 1;
}
int y;
};
auto x = MyStruct::func();
}
получить
MyNamespace
{
struct MyStruct
{
public: static int func(int c = 3)
{
return c + 1;
}
public:int y;
};
int x = MyNamespace::MyStruct::func(3);
}
Когда обещают 12 том ранобе оверлорд?
И вторые сезоны оврелорда и ванпанчмена?
| ← назад |