10 #ifndef NEWGRF_PROFILING_H
11 #define NEWGRF_PROFILING_H
38 static uint32_t FinishAll();
59 extern std::vector<NewGRFProfiler> _newgrf_profilers;
Base for the NewGRF implementation.
Callbacks that NewGRFs could implement.
CallbackID
List of implemented NewGRF callbacks.
Definition of base types and functions in a cross-platform compatible way.
Dynamic data of a loaded NewGRF.
Measurement of a single sprite group resolution.
GrfSpecFeature feat
GRF feature being resolved for.
uint32_t time
Time taken for resolution (microseconds)
uint32_t subs
Sub-calls to other sprite groups.
uint32_t root_sprite
Pseudo-sprite index in GRF file.
CallbackID cb
Callback ID.
uint32_t item
Local ID of item being resolved for.
uint32_t result
Result of callback.
Callback profiler for NewGRF development.
void EndResolve(const SpriteGroup *result)
Capture the completion of a sprite group resolution.
void RecursiveResolve()
Capture a recursive sprite group resolution.
static void StartTimer(uint64_t ticks)
Start the timeout timer that will finish all profiling sessions.
~NewGRFProfiler()
Complete profiling session and write data to file.
Call cur_call
Data for current call in progress.
bool active
Is this profiler collecting data.
const GRFFile * grffile
Which GRF is being profiled.
uint64_t start_tick
Tick number this profiler was started on.
static void AbortTimer()
Abort the timeout timer, so the timer callback is never called.
void BeginResolve(const ResolverObject &resolver)
Capture the start of a sprite group resolution.
NewGRFProfiler(const GRFFile *grffile)
Create profiler object and begin profiling session.
std::vector< Call > calls
All calls collected so far.
std::string GetOutputFilename() const
Get name of the file that will be written.
Interface for SpriteGroup-s to access the gamestate.
Definition of the game-calendar-timer.