1
0
Fork 0
mirror of https://github.com/gwm17/implot.git synced 2024-11-26 12:18:52 -05:00
Commit Graph

99 Commits

Author SHA1 Message Date
Pascal Thomet 49db527db1
Support long & long double, add macro INSTANTIATE_FOR_NUMERIC_TYPES (Fix #319) (#397)
* implot_items: INSTANTIATE_FOR_NUMERIC_TYPES / add long & long double (Fix #319)

- INSTANTIATE_FOR_NUMERIC_TYPES is a macro which instantiates templated plotting functions for numeric types.
This macro helps reduce some boilerplate code for template functions instantiations.

- Added optional support for more numeric types (long and long double)
The numeric type list does not include "long", "unsigned long" and "long double".
Most of the time, it is not an issue when linking statically.
However, when linking dynamically, issues related to undefined functions can arise:
although those types might have the same size, they are considered separate.

define IMPLOT_INSTANTIATE_ALL_NUMERIC_TYPES) in order to define versions for those types

In this case, the compilation time for this specific file will be 33% longer

- implot_internal.h / ImMean and ImStdDev: added cast  to double
(suppress MSVC warning about downcasting)

- Notes about numeric types "synonyms":
  Even if "long double" and "double" might occupy the same size,
they are not complete synonyms, and it is legal to define overloads for both double and long double.
  On some platforms, "unsigned long" might be the same size as "unsigned long long",
but it is nonetheless a separate type: see https://godbolt.org/z/1KWv5re7q (example with GCC 64 bits)
  On some other platforms, "long double" might be the same size as "double", but it is nonetheless a separate type: see https://godbolt.org/z/ae71P7rqG (example with MSVC 64 bits)

* IMPLOT_INSTANTIATE_ALL_NUMERIC_TYPES: disabled by default

* uppercase template instantiatation macros & group them

* implot_items.cpp: reword comments on IMPLOT_INSTANTIATE_ALL_NUMERIC_TYPES

* README.md: mention compile-time option IMPLOT_INSTANTIATE_ALL_NUMERIC_TYPES

* Github CI: IMPLOT_INSTANTIATE_ALL_NUMERIC_TYPES=1
2022-09-11 09:43:27 -05:00
ozlb e80e42e8b4
ImPlotTimeFmt_MinSMs (#383) 2022-07-29 07:57:51 -05:00
Evan Pezent 63d5ed94b7
Features/item flags (#319)
* add PlotBarGroups and layout some plans for flags

* exprimentin

* item flags added to each plotter

* rendering templates

* rendering templates

* item flags and axis scales

* item flags

* template markers

* markers

* benching

* buffer

* inline adjust

* inline fix

* dunno

* fix some todos

* tickers

* clean up

* update TODO

* update breaking changes

* demo cleanup

* remove TODO label

* header cleanup
2022-06-18 22:59:32 -05:00
Rokas Kupstys 79b05d5e25
Fix freed memory read error in AddTicksTime(). Invalid read occurred when LabelTickTime() resizes ticks.TextBuffer while last_major held pointer pointing into old now freed buffer. (#365)
Fixed a warning about condition depending on uninitialized ImPlotLegend::PreviousLocation.
2022-06-17 09:09:25 -05:00
Max Schwarz 196a0243c5
ImPlotAxis::WillRender(): return false if axis is disabled (#350)
This saves a few CPU cycles in SetupFinish(), which otherwise formats
tick labels & spacing for disabled axes.
2022-04-20 20:19:39 -07:00
Evan Pezent 58240e5311 remove redefinition of GetInputMap 2022-01-30 17:07:05 -08:00
Evan Pezent 8d3bd31395 -Wformat-nonliteral 2022-01-30 10:06:39 -08:00
Evan Pezent 3a53f0b796 init PixelMin/Max 2022-01-30 09:35:49 -08:00
Sergey Nenakhov 6659b164fe intel compiler warning fixes (and fastmath in general) 2022-01-23 00:50:18 +01:00
Evan Pezent c0da6fea04 add PlotBarGroups 2021-10-24 00:25:46 -07:00
Evan Pezent 6ee1559715
Setup API (#294)
* add new padding algo

* opposite working for y and x

* remove name axis colors

* move title label rendering

* axis dev

* clean up

* pre formatter

* formatter

* changing over to multi x axes

* more multi x changes

* more multi x changes

* more multi x changes

* setup 75% there

* 85% there

* 85% there

* remove query

* update input handling

* input and dnd tweaking

* input testing

* update demo

* setup debug

* setup debug

* bug fixes

* bug fixes

* more debug

* input

* more setup

* setup api almost complete

* setup api almost complete

* more clean up

* cleanup

* final commit before merge
2021-10-19 20:01:06 -07:00
Evan Pezent c40206f2ea spaces 2021-09-07 20:24:34 -07:00
Dario Mambro 14d4c96d0c
more flexible custom context management (#281) 2021-08-28 07:00:47 -07:00
Evan Pezent 3e96fd7c02
improve indexing, line rendering performance by 45% (#270)
* add IndexData and Indexers

* simplify transformers

* 30% improvement

* moving around

* add TODO.md

* fix bar plot aliasing

* finishup indexing

* remove debug bools
2021-07-30 20:27:02 -07:00
Evan Pezent c8601ac0d5 rev version, fix unused lines 2021-07-29 19:14:13 -07:00
Evan Pezent 83cb14b54a fix offsetandstride args...oops 2021-07-09 20:29:04 -07:00
Evan Pezent bffd448207 revert OffsetAndStride 2021-07-09 20:22:21 -07:00
Evan Pezent 51930a5ae6 fix imgui backward compat, YAxis[3], and add new demo benchmark option for LineG 2021-07-09 17:39:12 -07:00
Evan Pezent eb40cc908d Merge branch 'master' of https://github.com/epezent/implot 2021-07-07 22:18:51 -07:00
Evan Pezent 389781c31c v0.11 WIP 2021-07-07 22:18:38 -07:00
Evan Pezent 8c1bbf4d8d
Subplots (#203)
* SubPlots: Y axis padding over multiple plots

* Align Plots Group

new signature ID, ImPool  to store padding data, demo

* Align plots orientation (vertically, horizontally)

vertical will align Y axis, horizontal will align X axis.
*signature changed

* ImPlotOrientation used as flag for 2D grids of aligned plots

https://github.com/epezent/implot/pull/144#issuecomment-725849368

* AlignPlots updates to merge with v.0.9

* Sync to v0.9 20210127

* subplots proto

* make link flags work

* stuff

* add multi-line centered titles

* subplots work

* flag ideas

* better subplot positioning

* resizable subplots

* subplot shared items

* subplot ratios

* some cleanup and refactor

* some cleanup and refactor

* refactors and demo reorganization

* context menus...almost done!

* context menus, bug fixes

* active id

* make implot use ButtonBehavior throughout

* bug fixes

* more bug fixes

* tweaks

* fix id issue

* finish work on subplots

Co-authored-by: ozlb <ozlb@users.noreply.github.com>
2021-07-07 21:06:15 -07:00
Evan Pezent e9469cf347 constrain values <= 0 to DBL_MIN for log axes, fix div by zero 2021-06-08 20:31:30 -07:00
Evan Pezent 41a0e2c9fe
add ImPlotAxisFlags_RangeFit and ImPlotAxisFlags_Foreground (#200) 2021-03-28 12:59:25 -07:00
Evan Pezent ed1baf471a
Adds SetNextPlotFormatX/Y for custom tick label formatting (#198)
* add SetNextPlotFormat

* work on pruning

* finish up fmt
2021-03-25 09:19:00 -06:00
epezent ab110ceec8 misc refactors/improvements 2021-03-24 16:35:44 -06:00
epezent ef6c55cd00 tidy up selection/query code, add new methods 2021-03-23 23:42:26 -06:00
epezent 5db2ba3b22 make plots initially fit to plotted data on first frame 2021-03-20 22:56:47 -06:00
epezent 7aab224742 make inline funcs static, add culling to PlotShaded 2021-03-20 21:22:18 -06:00
epezent ccd29a646f rev up to v0.10 2021-03-20 20:45:31 -06:00
Evan Pezent 1d9381a004
Adds PlotHistogram and PlotHistogram2D, Improves Colormaps and Heatmap (#148) 2021-03-17 07:38:45 -05:00
epezent 46ea9abab4 improve ShowColormapScale 2021-03-07 12:36:01 -06:00
Evan Pezent 67e0876f89
Improved Drag and Drop Support (#172)
* prototyping enhanced dnd features

* improve dnd demo using new utils

* dnd stuff

* finish up dnd improvements

* remove unused code, fix timestamps
2021-02-28 18:10:23 -06:00
Evan Pezent c73509d6d1
make context menus open on single right click, move ImPlotInputMap out of public API (see implot_internal.h) (#170) 2021-01-18 21:49:23 -06:00
Evan Pezent 6f7bf5f38b
adds PlotVLines and PlotHLines for plotting infinite reference lines (#166) 2021-01-15 01:52:37 -06:00
epezent b22c21f912 fix bad defs in implot_internal and add WriteV to ImBufferWritter 2020-12-06 11:09:53 -06:00
epezent 24b543839b fix addtickstime definition and heatmap labels 2020-12-03 07:20:55 -06:00
Evan Pezent 40cbe88673
Add ImPlotFlags_Equal and simplify axis-related structs in implot_internal.h (#147)
* prototyping equal axes

* equal proto

* more refactors

* euqal axes almost perfect

* fitting axis equal working

* fitting axis equal working

* finish equal axis
2020-11-15 21:47:06 -06:00
epezent 48c0d6fe38 add legend ctx menu, rev up to 0.9 2020-11-10 08:27:28 -06:00
epezent 96e0fd9c57 fix crashing caused by legend refactors, add ShowMetricsWindow (WIP) 2020-10-21 10:08:41 -05:00
Evan Pezent 587c8b6221
Configurable Legend Locations (#135)
* add support for ISO 8601 timestamps

* clean up work on ISO 8601

* legend location proto

* location docs

* add horizontal legends, and ability to position mouse location

* add ShowAltLegend

* add ShowAltLegend

* default sizing for ShowAltLegend

* finish up legend locations
2020-10-18 23:26:34 -05:00
Evan Pezent f9a15a7147
Add Option for ISO 8601 Date Formatting (#132)
* add support for ISO 8601 timestamps

* clean up work on ISO 8601
2020-10-14 22:07:27 -05:00
Evan Pezent 90cbb561f0
tweak CalcTextColor 2020-09-22 17:23:50 -05:00
epezent 28fedd01f9 handle time/log formatting for drag lines and points 2020-09-21 07:09:14 -05:00
epezent 13e430a9e5 add annotation API 2020-09-19 20:54:19 -05:00
epezent a7ae1bca53 rename and refine draglines and dragpoints 2020-09-19 12:33:33 -05:00
ozlb 9e927df91e
ImPlotTimeFmt_HrMinSMs time format
ImPlotTimeFmt_HrMinSMs,        // 7:21:29.428pm (19:21:29.428)
2020-09-18 00:35:14 +02:00
epezent 04cc84ece0 add HideNextItem 2020-09-15 09:48:46 -05:00
epezent bb844612eb add option for 24 hour clock 2020-09-12 11:32:44 -05:00
epezent 117816d4e1 add option for 24 hour clock 2020-09-12 10:25:47 -05:00
epezent 04dc2c6be9 fix bugs in date picker 2020-09-09 19:17:19 -05:00