aboutsummaryrefslogtreecommitdiff
path: root/client
Commit message (Expand)AuthorAge
* Remove textures vertical offset. Fix for area enabling parallax.RealBadAngel2015-06-21
* Automated whitespace error fix for last commitest312015-06-14
* Improved parallax mapping. Generate heightmaps on the fly.RealBadAngel2015-06-14
* Optimize bumpmapping mathematicsLoic Blot2015-01-16
* Revert "Optimize bumpmapping mathematics"Craig Robbins2015-01-16
* Optimize bumpmapping mathematicsLoic Blot2015-01-15
* Restore finalColorBlend implementation in shaders.RealBadAngel2014-12-07
* Let lighting be done only CPU side. Remove finalColorBlend implementation fro...RealBadAngel2014-08-16
* Make faces shading correct for all possible modes.RealBadAngel2014-08-14
* Faces shading fixesRealBadAngel2014-07-07
* Improved faces shading with and without shaders.RealBadAngel2014-06-17
* Unite nodes shaders.RealBadAngel2014-06-15
* Fix invalid liquid lighting.RealBadAngel2014-04-16
* Normal maps generation on the fly.RealBadAngel2014-03-21
* Optimize shaders code. Add settings at compile time.RealBadAngel2013-12-09
* Fix shaders on some GPUsNovatux2013-12-08
* Shaders rework.RealBadAngel2013-12-03
* Fix texture bumpmapping on some GPUsZeg92013-08-04
* Add texture bumpmapping feature.RealBadAngel2013-07-04
* Actually fix shader3 alpha this timekwolekr2013-04-27
* Transform alpha channel as well in shaderkwolekr2013-04-25
* Add option to use texture alpha channelkwolekr2013-04-23
* Fix new_style_waterPilzAdam2013-03-17
* Add a list of servers to the "Multiplayer" tabJeija2013-01-21
* Tweak shader randomly a bitPerttu Ahola2012-12-02
* Handle day-night transition in shader and make light sources brighter when sh...Perttu Ahola2012-12-02
* Remove accidental vim swap filePerttu Ahola2012-12-02
* Implement a global shader parameter passing system and useful shadersPerttu Ahola2012-12-02
* ShaderSource and silly example shadersKahrl2012-12-02
"hl opt">== POINTEDTHING_NOTHING) { os<<"[nothing]"; } else if (type == POINTEDTHING_NODE) { const v3s16 &u = node_undersurface; const v3s16 &a = node_abovesurface; os<<"[node under="<<u.X<<","<<u.Y<<","<<u.Z << " above="<<a.X<<","<<a.Y<<","<<a.Z<<"]"; } else if (type == POINTEDTHING_OBJECT) { os<<"[object "<<object_id<<"]"; } else { os<<"[unknown PointedThing]"; } return os.str(); } void PointedThing::serialize(std::ostream &os) const { writeU8(os, 0); // version writeU8(os, (u8)type); switch (type) { case POINTEDTHING_NOTHING: break; case POINTEDTHING_NODE: writeV3S16(os, node_undersurface); writeV3S16(os, node_abovesurface); break; case POINTEDTHING_OBJECT: writeS16(os, object_id); break; } } void PointedThing::deSerialize(std::istream &is) { int version = readU8(is); if (version != 0) throw SerializationError( "unsupported PointedThing version"); type = (PointedThingType) readU8(is); switch (type) { case POINTEDTHING_NOTHING: break; case POINTEDTHING_NODE: node_undersurface = readV3S16(is); node_abovesurface = readV3S16(is); break; case POINTEDTHING_OBJECT: object_id = readS16(is); break; default: throw SerializationError("unsupported PointedThingType"); } } bool PointedThing::operator==(const PointedThing &pt2) const { if (type != pt2.type) { return false; } if (type == POINTEDTHING_NODE) { if ((node_undersurface != pt2.node_undersurface) || (node_abovesurface != pt2.node_abovesurface) || (node_real_undersurface != pt2.node_real_undersurface)) return false; } else if (type == POINTEDTHING_OBJECT) { if (object_id != pt2.object_id) return false; } return true; } bool PointedThing::operator!=(const PointedThing &pt2) const { return !(*this == pt2); }