incubator-flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Lundgren <e...@lndgrn.se>
Subject Native Screen ANE – was "new user interface design"
Date Tue, 28 Feb 2012 18:36:12 GMT
Dear list,

Talking about displays and their native ppi:s we've mentioned ANEs a couple of time. I've
tried to research this, because I believe there are real use-cases if we could get it to work
– layout elements based on the users context, not his/hers device.

I'm a FLEX developer and feel that an ANE is a bit over my head. I may be able to figure something
out in java, but everything I've been able to research about it points at C. And that is a
no go for me at the moment.

Are there any C gurus on the list? :)


If anyone, more capable than me, would be willing to explore this with me I've tried to collect
some material.

1. http://en.wikipedia.org/wiki/Extended_display_identification_data
2. http://www.insanelymac.com/forum/index.php?showtopic=208410
3. http://cgit.freedesktop.org/xorg/app/edid-decode/
4. https://github.com/claar/php-edid-decode
5. http://www.madrau.com/indexSRX4.html

First. There seems to be a spec regulating information exchanged between pc:s and monitors
called EDID. [1]
Desktop computers stores EDID information in their registry, but in a binary format that needs
to be parsed.
I can find the EDID data on my mac, following the guidelines given at [2].
I don't have access to a windows machine to search for it on that OS.

There is an active C project for parsing the EDID data at [3]. Not sure about licensing.
There is a php port at [4] if that would help us. Not sure about licensing.

On mac you can get parsed EDID-data using an application like SwitchResX. [5]

And looking at the output the program can generate from my system it seems really promising.
I can read that my screens physical size is 286 mm x 179 mm, and a pixel size 1280 x 800 px.
This is all I need to calculate my screens correct ppi (113 px/inch).

I'm enclosing the full print out below. It could serve as the foundation for the ActionScript
ANE interface. I'm thinking something like a "NativeScreen" class, collecting properties like:

gamma:Number
timing:Number
widthCm:uint
heightCm:uint
widthInch:uint
heightInch:uint
widthPixel
heightPixel
ppi:uint

...

I'm sure there are some pain's down this road, but maybe there is a path ahed. Does this make
anyone itch? Sorry for the mac-twisted research. I don't have access to windows at the moment.

Yours
/Erik



Printout from SwitchResX:

DDC block report generated by SwitchResX version 4.2.7 for display
Color LCD


-----------------------------------------------------
------------------- RAW DATA ------------------------
-----------------------------------------------------
      0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
-----------------------------------------------------
0  | 00 FF FF FF FF FF FF 00 06 10 BD 9C 00 00 00 00
1  | 03 13 01 03 80 1D 12 78 0A 00 00 00 00 00 00 00
2  | 00 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
3  | 01 01 01 01 01 01 52 1C 00 8F 50 20 2E 30 30 20
4  | 36 00 1E B3 10 00 00 18 00 00 00 01 00 06 10 20
5  | 00 00 00 00 00 00 00 00 0A 20 00 00 00 FE 00 4C
6  | 50 31 33 33 57 58 33 2D 54 4C 41 31 00 00 00 FE
7  | 00 43 6F 6C 6F 72 20 4C 43 44 0A 20 20 20 00 41

-----------------------------------------------------
 <  00FFFFFF FFFFFF00 0610BD9C 00000000 03130103 801D1278 0A000000 00000000 00505400 00000101
01010101 01010101 01010101 0101521C 008F5020 2E303020 36001EB3 10000018 00000001 00061020
00000000 00000000 0A200000 00FE004C 50313333 5758332D 544C4131 000000FE 00436F6C 6F72204C
43440A20 20200041	>

-----------------------------------------------------
 {  0x00, 0xFF, 0xFF, 0xFF,  0xFF, 0xFF, 0xFF, 0x00,  0x06, 0x10, 0xBD, 0x9C,  0x00, 0x00,
0x00, 0x00,  0x03, 0x13, 0x01, 0x03,  0x80, 0x1D, 0x12, 0x78,  0x0A, 0x00, 0x00, 0x00,  0x00,
0x00, 0x00, 0x00,  0x00, 0x50, 0x54, 0x00,  0x00, 0x00, 0x01, 0x01,  0x01, 0x01, 0x01, 0x01,
 0x01, 0x01, 0x01, 0x01,  0x01, 0x01, 0x01, 0x01,  0x01, 0x01, 0x52, 0x1C,  0x00, 0x8F, 0x50,
0x20,  0x2E, 0x30, 0x30, 0x20,  0x36, 0x00, 0x1E, 0xB3,  0x10, 0x00, 0x00, 0x18,  0x00, 0x00,
0x00, 0x01,  0x00, 0x06, 0x10, 0x20,  0x00, 0x00, 0x00, 0x00,  0x00, 0x00, 0x00, 0x00,  0x0A,
0x20, 0x00, 0x00,  0x00, 0xFE, 0x00, 0x4C,  0x50, 0x31, 0x33, 0x33,  0x57, 0x58, 0x33, 0x2D,
 0x54, 0x4C, 0x41, 0x31,  0x00, 0x00, 0x00, 0xFE,  0x00, 0x43, 0x6F, 0x6C,  0x6F, 0x72, 0x20,
0x4C,  0x43, 0x44, 0x0A, 0x20,  0x20, 0x20, 0x00, 0x41, 	}

-----------------------------------------------------
	Valid EDID block: checksum passed

-----------------------------------------------------
------------------- MAIN EDID BLOCK -----------------
-----------------------------------------------------

EDID Version........1.3
Manufacturer........APP
Product Code........48540 (BD9C) (9CBD)
Serial Number.......00000000

Manufactured........Week 3 of year 2009
Max H Size..........29 cm
Max V Size..........18 cm
Gamma...............2,20

Display Supported Features:
---------------------------


Display type:
-------------
	RGB 4:4:4 & YCrCb 4:4:4 Color Encoding Formats
	Display is non continuous frequency
	Default color space is not sRGB standard
	Preferred timing mode includes Native Pixel Format


Input signal & sync:
--------------------
Digital Input
	Color Bit Depth is undefined
	Digital Interface is not defined


Color info:
-----------
Red x = 0,000  Green x = 0,000  Blue x = 0,000  White x = 0,312
Red y = 0,000  Green y = 0,000  Blue y = 0,000  White y = 0,328

Established Timings:
--------------------

Manufacturer Reserved Timings:
------------------------------

Standard Timing Identification:
-------------------------------

Monitor Description blocks:
---------------------------
	Descriptor #0 - Timing definition:
	Mode = 1280 x 800 @ 60,223Hz
		Pixel Clock............. 72,50 MHz		Non-Interlaced

		                        Horizontal		Vertical
		Active.................. 1280 pixels		 800 lines
		Front Porch.............   48 pixels		   3 lines
		Sync Width..............   32 pixels		   6 lines
		Back Porch..............   63 pixels		  37 lines
		Blanking................  143 pixels		  46 lines
		Total................... 1423 pixels		 846 lines
		Scan Rate...............  50,949 kHz		 60,223 Hz

		Image Size..............  286 mm		 179 mm
		Border..................    0 pixels		   0 lines

			Sync: Digital separate with
				* Negative vertical polarity
				* Negative horizontal polarity

	Descriptor #1 - Manufacturer specific data (not interpreted here)

	Descriptor #2 - ASCII data:
			LP133WX3-TLA1

	Descriptor #3 - ASCII data:
			Color LCD


Mime
View raw message