aboutsummaryrefslogtreecommitdiff
path: root/client/shaders/nodes_shader
Commit message (Expand)AuthorAge
...
* Fix relief mapping issuesRealBadAngel2015-07-16
* Shaders fixes and cleanup relief mapping code.RealBadAngel2015-07-02
* Bugfix: variable type mismatchRealBadAngel2015-06-28
* 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
class="hl ppc">#ifndef HTTPFETCH_HEADER #define HTTPFETCH_HEADER #include <string> #include <vector> #include "config.h" // Can be used in place of "caller" in asynchronous transfers to discard result // (used as default value of "caller") #define HTTPFETCH_DISCARD 0 #define HTTPFETCH_SYNC 1 struct HTTPFetchRequest { std::string url; // Identifies the caller (for asynchronous requests) // Ignored by httpfetch_sync unsigned long caller; // Some number that identifies the request // (when the same caller issues multiple httpfetch_async calls) unsigned long request_id; // Timeout for the whole transfer, in milliseconds long timeout; // Timeout for the connection phase, in milliseconds long connect_timeout; // POST data (should be application/x-www-form-urlencoded // unless a Content-Type header is specified in extra_headers) // If this is empty a GET request is done instead. std::string post_fields; // If not empty, should contain entries such as "Accept: text/html" std::vector<std::string> extra_headers; //useragent to use std::string useragent; HTTPFetchRequest(); }; struct HTTPFetchResult { bool succeeded; bool timeout; long response_code; std::string data; // The caller and request_id from the corresponding HTTPFetchRequest. unsigned long caller; unsigned long request_id; HTTPFetchResult() { succeeded = false; timeout = false; response_code = 0; data = ""; caller = HTTPFETCH_DISCARD; request_id = 0; } HTTPFetchResult(const HTTPFetchRequest &fetchrequest) { succeeded = false; timeout = false; response_code = 0; data = ""; caller = fetchrequest.caller; request_id = fetchrequest.request_id; } }; // Initializes the httpfetch module void httpfetch_init(int parallel_limit); // Stops the httpfetch thread and cleans up resources void httpfetch_cleanup(); // Starts an asynchronous HTTP fetch request void httpfetch_async(const HTTPFetchRequest &fetchrequest); // If any fetch for the given caller ID is complete, removes it from the // result queue, sets fetchresult and returns true. Otherwise returns false. bool httpfetch_async_get(unsigned long caller, HTTPFetchResult &fetchresult); // Allocates a caller ID for httpfetch_async // Not required if you want to set caller = HTTPFETCH_DISCARD unsigned long httpfetch_caller_alloc(); // Frees a caller ID allocated with httpfetch_caller_alloc // Note: This can be expensive, because the httpfetch thread is told // to stop any ongoing fetches for the given caller. void httpfetch_caller_free(unsigned long caller); // Performs a synchronous HTTP request. This blocks and therefore should // only be used from background threads. void httpfetch_sync(const HTTPFetchRequest &fetchrequest, HTTPFetchResult &fetchresult); #endif // !HTTPFETCH_HEADER