mirror of
https://github.com/minetest/minetest.git
synced 2025-03-06 20:48:40 +01:00
Fix star visilibity and documentation (since 946c03c6
)
Fix memory leak (unused allocation) Fix star rendering Rename sky color struct Fix stars on android Remove extraneous .data() from android star draw
This commit is contained in:
parent
23c907befe
commit
b9a0626d88
4 changed files with 16 additions and 32 deletions
|
@ -6044,7 +6044,7 @@ object you are working with still exists.
|
|||
* `star_color`: ColorSpec, sets the colors of the stars,
|
||||
alpha channel is used to set overall star brightness.
|
||||
(default: `#ebebff69`)
|
||||
* `size`: Float controlling the overall size of the stars (default: `1`)
|
||||
* `scale`: Float controlling the overall size of the stars (default: `1`)
|
||||
* `get_stars()`: returns a table with the current stars parameters as in
|
||||
`set_stars`.
|
||||
* `set_clouds(parameters)`: set cloud parameters
|
||||
|
|
|
@ -724,10 +724,10 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day)
|
|||
if (m_star_params.starcolor.getAlpha() < 1)
|
||||
return;
|
||||
#if ENABLE_GLES
|
||||
u16 *indices = new u16[m_star_count * 3];
|
||||
u16 *indices = new u16[m_star_params.count * 3];
|
||||
video::S3DVertex *vertices =
|
||||
new video::S3DVertex[m_star_count * 3];
|
||||
for (u32 i = 0; i < m_star_count; i++) {
|
||||
new video::S3DVertex[m_star_params.count * 3];
|
||||
for (u32 i = 0; i < m_star_params.count; i++) {
|
||||
indices[i * 3 + 0] = i * 3 + 0;
|
||||
indices[i * 3 + 1] = i * 3 + 1;
|
||||
indices[i * 3 + 2] = i * 3 + 2;
|
||||
|
@ -750,8 +750,8 @@ void Sky::draw_stars(video::IVideoDriver * driver, float wicked_time_of_day)
|
|||
vertices[i * 3 + 2].Pos = p2;
|
||||
vertices[i * 3 + 2].Color = starcolor;
|
||||
}
|
||||
driver->drawIndexedTriangleList(vertices.data(), m_star_count * 3,
|
||||
indices.data(), m_star_count);
|
||||
driver->drawIndexedTriangleList(vertices, m_star_params.count * 3,
|
||||
indices, m_star_params.count);
|
||||
delete[] indices;
|
||||
delete[] vertices;
|
||||
#else
|
||||
|
@ -864,7 +864,7 @@ void Sky::setSunTexture(std::string sun_texture,
|
|||
}
|
||||
}
|
||||
|
||||
void Sky::setSunriseTexture(std::string sunglow_texture,
|
||||
void Sky::setSunriseTexture(std::string sunglow_texture,
|
||||
ITextureSource* tsrc)
|
||||
{
|
||||
// Ignore matching textures (with modifiers) entirely.
|
||||
|
@ -876,7 +876,7 @@ void Sky::setSunriseTexture(std::string sunglow_texture,
|
|||
);
|
||||
}
|
||||
|
||||
void Sky::setMoonTexture(std::string moon_texture,
|
||||
void Sky::setMoonTexture(std::string moon_texture,
|
||||
std::string moon_tonemap, ITextureSource *tsrc)
|
||||
{
|
||||
// Ignore matching textures (with modifiers) entirely,
|
||||
|
@ -914,25 +914,8 @@ void Sky::setMoonTexture(std::string moon_texture,
|
|||
|
||||
void Sky::setStarCount(u16 star_count, bool force_update)
|
||||
{
|
||||
// Force updating star count at game init.
|
||||
if (force_update) {
|
||||
m_star_params.count = star_count;
|
||||
m_stars.clear();
|
||||
// Rebuild the stars surrounding the camera
|
||||
for (u16 i = 0; i < star_count; i++) {
|
||||
v3f star = v3f(
|
||||
myrand_range(-10000, 10000),
|
||||
myrand_range(-10000, 10000),
|
||||
myrand_range(-10000, 10000)
|
||||
);
|
||||
|
||||
star.normalize();
|
||||
m_stars.emplace_back(star);
|
||||
}
|
||||
// Ignore changing star count if the new value is identical
|
||||
} else if (m_star_params.count == star_count)
|
||||
return;
|
||||
else {
|
||||
// Allow force updating star count at game init.
|
||||
if (m_star_params.count != star_count || force_update) {
|
||||
m_star_params.count = star_count;
|
||||
m_stars.clear();
|
||||
// Rebuild the stars surrounding the camera
|
||||
|
|
|
@ -2059,7 +2059,7 @@ int ObjectRef::l_set_stars(lua_State *L)
|
|||
lua_pop(L, 1);
|
||||
|
||||
star_params.scale = getfloatfield_default(L, 2,
|
||||
"size", star_params.scale);
|
||||
"scale", star_params.scale);
|
||||
|
||||
getServer(L)->setStars(player, star_params);
|
||||
lua_pushboolean(L, true);
|
||||
|
|
|
@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
|
||||
#pragma once
|
||||
|
||||
struct skycolor
|
||||
struct SkyColor
|
||||
{
|
||||
video::SColor day_sky;
|
||||
video::SColor day_horizon;
|
||||
|
@ -36,7 +36,7 @@ struct SkyboxParams
|
|||
std::string type;
|
||||
std::vector<std::string> textures;
|
||||
bool clouds;
|
||||
skycolor sky_color;
|
||||
SkyColor sky_color;
|
||||
video::SColor sun_tint;
|
||||
video::SColor moon_tint;
|
||||
std::string tint_type;
|
||||
|
@ -72,9 +72,9 @@ struct StarParams
|
|||
class SkyboxDefaults
|
||||
{
|
||||
public:
|
||||
const skycolor getSkyColorDefaults()
|
||||
const SkyColor getSkyColorDefaults()
|
||||
{
|
||||
skycolor sky;
|
||||
SkyColor sky;
|
||||
// Horizon colors
|
||||
sky.day_horizon = video::SColor(255, 155, 193, 240);
|
||||
sky.indoors = video::SColor(255, 100, 100, 100);
|
||||
|
@ -112,6 +112,7 @@ public:
|
|||
const StarParams getStarDefaults()
|
||||
{
|
||||
StarParams stars;
|
||||
stars.visible = true;
|
||||
stars.count = 1000;
|
||||
stars.starcolor = video::SColor(105, 235, 235, 255);
|
||||
stars.scale = 1;
|
||||
|
|
Loading…
Add table
Reference in a new issue