Android: temporary aarch64 fix. Move font size it constants, minor cleanup
parent
682e9f90f0
commit
41de61907a
|
@ -815,128 +815,6 @@ video::ITexture* TextureSource::generateTextureFromMesh(
|
|||
video::IVideoDriver *driver = m_device->getVideoDriver();
|
||||
sanity_check(driver);
|
||||
|
||||
#ifdef __ANDROID__
|
||||
const GLubyte* renderstr = glGetString(GL_RENDERER);
|
||||
std::string renderer((char*) renderstr);
|
||||
|
||||
// use no render to texture hack
|
||||
if (
|
||||
//(renderer.find("Adreno") != std::string::npos) ||
|
||||
//(renderer.find("Mali") != std::string::npos) ||
|
||||
//(renderer.find("Immersion") != std::string::npos) ||
|
||||
//(renderer.find("Tegra") != std::string::npos) ||
|
||||
g_settings->getBool("inventory_image_hack")
|
||||
) {
|
||||
// Get a scene manager
|
||||
scene::ISceneManager *smgr_main = m_device->getSceneManager();
|
||||
sanity_check(smgr_main);
|
||||
scene::ISceneManager *smgr = smgr_main->createNewSceneManager();
|
||||
sanity_check(smgr);
|
||||
|
||||
const float scaling = 0.2;
|
||||
|
||||
scene::IMeshSceneNode* meshnode =
|
||||
smgr->addMeshSceneNode(params.mesh, NULL,
|
||||
-1, v3f(0,0,0), v3f(0,0,0),
|
||||
v3f(1.0 * scaling,1.0 * scaling,1.0 * scaling), true);
|
||||
meshnode->setMaterialFlag(video::EMF_LIGHTING, true);
|
||||
meshnode->setMaterialFlag(video::EMF_ANTI_ALIASING, true);
|
||||
meshnode->setMaterialFlag(video::EMF_TRILINEAR_FILTER, m_setting_trilinear_filter);
|
||||
meshnode->setMaterialFlag(video::EMF_BILINEAR_FILTER, m_setting_bilinear_filter);
|
||||
meshnode->setMaterialFlag(video::EMF_ANISOTROPIC_FILTER, m_setting_anisotropic_filter);
|
||||
|
||||
scene::ICameraSceneNode* camera = smgr->addCameraSceneNode(0,
|
||||
params.camera_position, params.camera_lookat);
|
||||
// second parameter of setProjectionMatrix (isOrthogonal) is ignored
|
||||
camera->setProjectionMatrix(params.camera_projection_matrix, false);
|
||||
|
||||
smgr->setAmbientLight(params.ambient_light);
|
||||
smgr->addLightSceneNode(0,
|
||||
params.light_position,
|
||||
params.light_color,
|
||||
params.light_radius*scaling);
|
||||
|
||||
core::dimension2d<u32> screen = driver->getScreenSize();
|
||||
|
||||
// Render scene
|
||||
driver->beginScene(true, true, video::SColor(0,0,0,0));
|
||||
driver->clearZBuffer();
|
||||
smgr->drawAll();
|
||||
|
||||
core::dimension2d<u32> partsize(screen.Width * scaling,screen.Height * scaling);
|
||||
|
||||
irr::video::IImage* rawImage =
|
||||
driver->createImage(irr::video::ECF_A8R8G8B8, partsize);
|
||||
|
||||
u8* pixels = static_cast<u8*>(rawImage->lock());
|
||||
if (!pixels)
|
||||
{
|
||||
rawImage->drop();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
core::rect<s32> source(
|
||||
screen.Width /2 - (screen.Width * (scaling / 2)),
|
||||
screen.Height/2 - (screen.Height * (scaling / 2)),
|
||||
screen.Width /2 + (screen.Width * (scaling / 2)),
|
||||
screen.Height/2 + (screen.Height * (scaling / 2))
|
||||
);
|
||||
|
||||
glReadPixels(source.UpperLeftCorner.X, source.UpperLeftCorner.Y,
|
||||
partsize.Width, partsize.Height, GL_RGBA,
|
||||
GL_UNSIGNED_BYTE, pixels);
|
||||
|
||||
driver->endScene();
|
||||
|
||||
// Drop scene manager
|
||||
smgr->drop();
|
||||
|
||||
unsigned int pixelcount = partsize.Width*partsize.Height;
|
||||
|
||||
u8* runptr = pixels;
|
||||
for (unsigned int i=0; i < pixelcount; i++) {
|
||||
|
||||
u8 B = *runptr;
|
||||
u8 G = *(runptr+1);
|
||||
u8 R = *(runptr+2);
|
||||
u8 A = *(runptr+3);
|
||||
|
||||
//BGRA -> RGBA
|
||||
*runptr = R;
|
||||
runptr ++;
|
||||
*runptr = G;
|
||||
runptr ++;
|
||||
*runptr = B;
|
||||
runptr ++;
|
||||
*runptr = A;
|
||||
runptr ++;
|
||||
}
|
||||
|
||||
video::IImage* inventory_image =
|
||||
driver->createImage(irr::video::ECF_A8R8G8B8, params.dim);
|
||||
|
||||
rawImage->copyToScaling(inventory_image);
|
||||
rawImage->drop();
|
||||
|
||||
guiScalingCache(io::path(params.rtt_texture_name.c_str()), driver, inventory_image);
|
||||
|
||||
video::ITexture *rtt = driver->addTexture(params.rtt_texture_name.c_str(), inventory_image);
|
||||
inventory_image->drop();
|
||||
|
||||
if (rtt == NULL) {
|
||||
errorstream << "TextureSource::generateTextureFromMesh(): failed to recreate texture from image: " << params.rtt_texture_name << std::endl;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
driver->makeColorKeyTexture(rtt, v2s32(0,0));
|
||||
|
||||
if (params.delete_texture_on_shutdown)
|
||||
m_texture_trash.push_back(rtt);
|
||||
|
||||
return rtt;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (driver->queryFeature(video::EVDF_RENDER_TO_TARGET) == false)
|
||||
{
|
||||
static bool warned = false;
|
||||
|
|
|
@ -110,9 +110,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
// TODO: implement dpi-based scaling for windows and remove this hack
|
||||
#if defined(_WIN32)
|
||||
#define TTF_DEFAULT_FONT_SIZE (18)
|
||||
#else
|
||||
#define TTF_DEFAULT_FONT_SIZE (20)
|
||||
#elif defined(__ANDROID__) || defined(__IOS__)
|
||||
#define TTF_DEFAULT_FONT_SIZE (16)
|
||||
#else
|
||||
#define TTF_DEFAULT_FONT_SIZE (18)
|
||||
#endif
|
||||
#define DEFAULT_FONT_SIZE (10)
|
||||
|
||||
|
|
|
@ -245,12 +245,8 @@ void set_default_settings(Settings *settings)
|
|||
|
||||
settings->setDefault("fallback_font_shadow", "1");
|
||||
settings->setDefault("fallback_font_shadow_alpha", "128");
|
||||
|
||||
#if defined(__ANDROID__) || defined(__IOS__)
|
||||
std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE - 3);
|
||||
#else
|
||||
std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE + 2);
|
||||
#endif
|
||||
|
||||
std::string font_size_str = std::to_string(TTF_DEFAULT_FONT_SIZE);
|
||||
|
||||
settings->setDefault("fallback_font_size", font_size_str);
|
||||
#else
|
||||
|
@ -377,7 +373,7 @@ void set_default_settings(Settings *settings)
|
|||
settings->setDefault("enable_console", "false");
|
||||
|
||||
settings->setDefault("mainmenu_last_selected_world", "1");
|
||||
settings->setDefault("inventory_image_hack", "false");
|
||||
settings->setDefault("mapgens_available", "v7p, flat, v7, v6");
|
||||
|
||||
// Mobile Platform
|
||||
#if defined(__ANDROID__) || defined(__IOS__)
|
||||
|
@ -428,6 +424,11 @@ void set_default_settings(Settings *settings)
|
|||
// set font_path
|
||||
settings->setDefault("mono_font_path", "/system/fonts/DroidSansMono.ttf");
|
||||
settings->setDefault("fallback_font_path", "/system/fonts/DroidSans.ttf");
|
||||
|
||||
// FIXME: bad solution 'con(62/1)RE-SENDING timed-out RELIABLE to 127.0.0.1(t/o=0.1)'
|
||||
#ifdef __aarch64__
|
||||
settings->setDefault("max_packets_per_iteration", "8");
|
||||
#endif
|
||||
|
||||
// check screen size
|
||||
float x_inches = ((double) porting::getDisplaySize().X /
|
||||
|
|
|
@ -66,7 +66,11 @@ static inline float CALC_DTIME(u64 lasttime, u64 curtime)
|
|||
*/
|
||||
#define MAX_RELIABLE_WINDOW_SIZE 0x8000
|
||||
/* starting value for window size */
|
||||
#if defined(__ANDROID__) || defined(__aarch64__)
|
||||
#define MIN_RELIABLE_WINDOW_SIZE 0x4
|
||||
#else
|
||||
#define MIN_RELIABLE_WINDOW_SIZE 0x40
|
||||
#endif
|
||||
|
||||
#define MAX_UDP_PEERS 65535
|
||||
|
||||
|
|
Loading…
Reference in New Issue