HyperDisplay -- can I get "landscape" mode?

Maybe I missed something. I recently got a MicroMod Input + Diaplay carrier and an ESP32 processor board. I’ve run through the Examples mentioned in both Hookup Guides, all of which seem to use HyperDisplay. They all seem to have only “portrait” mode. Looking through the .h files, I can’t see anything suggesting “orientation”, though there are some things in the 2D graphics that talk about rotation, but it doesn’t look like that is what I’m looking for. I just want to display in “landscape” mode – that is, wider than tall – and in this case I’ll be happy if the row of LEDs is on the bottom.

I’ve looked through ALEX THE GIANT’s code for his calendar display described in [the July 27th blog, which uses Adafruit’s Adafruit_GFX and Adafruit_ILI9341 libraries instead of HyperDisplay. After ripping out a bunch of stuff that’s superfluous for my use, I did get it to display in “landscape” mode. The downside is that GFX doesn’t seem to support the concept of “windows” – that is, breaking up the “canvas” into smaller pieces. HyperDisplay can do this, but if it can’t readily support landscape mode, I’ll have to live without windows.](MicroMod Calendar - News - SparkFun Electronics)

You should be able to edit the “Bare necessities.h” in the examples https://github.com/sparkfun/SparkFun_Hy … master.zip and just switch around the X and Y parameters

FWIW, I started by renaming the Example to Example1_simpleBareNecessities2 (both the directory and the .ino), just to keep the modified one separate.

As I expected from such a simplistic approach (I’ve been programming in C/C++ since the late 70s), it generated a bunch of error messages (I deleted some of the blank lines):

Arduino: 1.8.13 (Mac OS X), Board: “SparkFun ESP32 MicroMod, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 921600, None”

Example1_simpleBareNecessities2:33:16: error: cannot declare variable ‘myMinimalDisplay’ to be of abstract type ‘bareMinDerived’

bareMinDerived myMinimalDisplay(NUM_PIX_X, NUM_PIX_Y);

^

In file included from /Users/clarkjones/Downloads/SparkFun_HyperDisplay-master/examples/Example1_simpleBareNecessities2/Example1_simpleBareNecessities2.ino:27:0:

sketch/bareNecessities.h:32:7: note: because the following virtual functions are pure within ‘bareMinDerived’:

class bareMinDerived : virtual public hyperdisplay{ // Using hyperdisplay as virtual will allow support for future I/O libraries that also inherit from hyperdisplay

^

In file included from sketch/bareNecessities.h:17:0,

from /Users/clarkjones/Downloads/SparkFun_HyperDisplay-master/examples/Example1_simpleBareNecessities2/Example1_simpleBareNecessities2.ino:27:

/Users/clarkjones/Documents/Arduino/libraries/SparkFun_HyperDisplay/src/hyperdisplay.h:145:19: note: virtual void hyperdisplay::swpixel(hd_extent_t, hd_extent_t, color_t, hd_colors_t, hd_colors_t)

virtual void swpixel( hd_extent_t x0, hd_extent_t y0, color_t data = NULL, hd_colors_t colorCycleLength = 1, hd_colors_t startColorOffset = 0) = 0; // Made pure vitual to force control of buffered memory access to be handled by derived classes

^

exit status 1

cannot declare variable ‘myMinimalDisplay’ to be of abstract type ‘bareMinDerived’

This report would have more information with

“Show verbose output during compilation”

option enabled in File → Preferences.