The 3b-hdr Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The 3b-hdr Reference Manual

This is the 3b-hdr Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 03:06:20 2022 GMT+0.

Table of Contents


1 Introduction

Read/Write Radiance shared-exponent RGBE HDR image files

Reading

Read with (READ-HDR-FILE FILE-NAME &key FORMAT Y-UP) or (READ-HDR-STREAM STREAM &key FORMAT Y-UP).

FILE-NAME is a pathname designator for an HDR file.

STREAM is an open (unsigned-byte 8) input stream.

FORMAT is either :RGB9-E5(default) or :FLOAT. If it is :FLOAT, data will be returned as single-floats, if :RGB9-E5 it will be returned as (unsigned-byte 32) containing GL-style RGB9-E5 data.

Y-UP specifies that data should be returned as GL-style lower-left origin (bottom row first), otherwise it is returned with upper-left origin (top-row first).

Both functions return an HDR-FILE object with following accessors:

WIDTH = width of image in pixels

HEIGHT = height of image in rows

DATA = vector of (UNSIGNED-BYTE 32) with 1 element per pixel or SINGLE-FLOAT with 3 elements per pixel, depending on requested FORMAT when loading.

ORIGIN = :UPPER-LEFT or :LOWER-LEFT depending on requested Y-UP when loading.

GL-PIXEL-TYPE, GL-PIXEL-FORMAT, GL-INTERNAL-FORMAT = values suitable to pass to cl-opengl when creating/uploading textures from data, :unsigned-int-5-9-9-9-rev :rgb :rgb9-e5 or :float :rgb :rgb32f depending on FORMAT

EXPOSURE = (product of) EXPOSURE header value(s) in HDR file, or 1.0 if none specified. Usually 1.0.

Writing

Write with (WRITE-HDR-FILE FILE-NAME HDR &key UNCOMPRESSED IF-EXISTS IF-DOES-NOT-EXIST) or (WRITE-HDR-STREAM STREAM HDR &key UNCOMPRESSED)

FILE-NAME is a pathname designator for an HDR file to be written.

STREAM is an open (unsigned-byte 8) output stream.

HDR is an HDR-FILE object, with at least WIDTH, HEIGHT, DATA, GL-PIXEL-TYPE, and ORIGIN specified.

If UNCOMPRESSED is true, write scanlines as uncompressed RGBE instead of new-style RLE-compressed data.

IF-EXISTS (default :error) and IF-DOES-NOT-EXIST (default :create) are passed to CL:OPEN


2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 3b-hdr

reader and writer for radiance HDR files

Author

Bart Botta

License

MIT

Dependencies
  • alexandria (system).
  • babel (system).
  • parse-number (system).
  • split-sequence (system).
Source

3b-hdr.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.1 3b-hdr/3b-hdr.asd

Source

3b-hdr.asd.

Parent Component

3b-hdr (system).

ASDF Systems

3b-hdr.


Next: , Previous: , Up: Lisp   [Contents][Index]

3.1.2 3b-hdr/package.lisp

Source

3b-hdr.asd.

Parent Component

3b-hdr (system).

Packages

3b-hdr.


Previous: , Up: Lisp   [Contents][Index]

3.1.3 3b-hdr/hdr.lisp

Dependency

package.lisp (file).

Source

3b-hdr.asd.

Parent Component

3b-hdr (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 3b-hdr

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Public Interface


5.1.1 Ordinary functions

Function: read-hdr-file (file &key format y-up)

Reads a radiance HDR image from FILE into a vector
of (UNSIGNED-BYTE 32) if FORMAT is :RGB9-E5, or SINGLE-FLOAT if format is :FLOAT. If Y-UP is true, data is stored with bottom row of image first, otherwise top row first.

Package

3b-hdr.

Source

hdr.lisp.

Function: read-hdr-stream (stream &key format y-up)

Reads a radiance HDR image from STREAM into a vector
of (UNSIGNED-BYTE 32) if FORMAT is :RGB9-E5, or SINGLE-FLOAT if format is :FLOAT. If Y-UP is true, data is stored with bottom row of image first, otherwise top row first.

Package

3b-hdr.

Source

hdr.lisp.

Function: write-hdr-file (file hdr &key uncompressed if-exists if-does-not-exist)

Write HDR to FILE, with ’new rle’ compression unless UNCOMPRESSED is true. HDR must have at least WIDTH, HEIGHT, GL-PIXEL-TYPE and DATA values specified. If GL-PIXEL-TYPE is :FLOAT, DATA should be a vector of R,G,B values. Otherwise, DATA is assumed to be a vector of RGB9-E5 values.

Package

3b-hdr.

Source

hdr.lisp.

Function: write-hdr-stream (stream hdr &key uncompressed)

Write HDR to (UNSIGNED-BYTE 8) output stream STREAM, with ’new rle’ compression unless UNCOMPRESSED is true. HDR must have at least WIDTH, HEIGHT, GL-PIXEL-TYPE and DATA values specified. If GL-PIXEL-TYPE is :FLOAT, DATA should be a vector of R,G,B values. Otherwise, DATA is assumed to be a vector of RGB9-E5 values.

Package

3b-hdr.

Source

hdr.lisp.


5.1.2 Generic functions

Generic Reader: data (object)
Package

3b-hdr.

Methods
Reader Method: data ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

data.

Generic Writer: (setf data) (object)
Package

3b-hdr.

Methods
Writer Method: (setf data) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

data.

Generic Reader: exposure (object)
Package

3b-hdr.

Methods
Reader Method: exposure ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

exposure.

Generic Writer: (setf exposure) (object)
Package

3b-hdr.

Methods
Writer Method: (setf exposure) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

exposure.

Generic Reader: gl-internal-format (object)
Package

3b-hdr.

Methods
Reader Method: gl-internal-format ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

gl-internal-format.

Generic Writer: (setf gl-internal-format) (object)
Package

3b-hdr.

Methods
Writer Method: (setf gl-internal-format) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

gl-internal-format.

Generic Reader: gl-pixel-format (object)
Package

3b-hdr.

Methods
Reader Method: gl-pixel-format ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

gl-pixel-format.

Generic Writer: (setf gl-pixel-format) (object)
Package

3b-hdr.

Methods
Writer Method: (setf gl-pixel-format) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

gl-pixel-format.

Generic Reader: gl-pixel-type (object)
Package

3b-hdr.

Methods
Reader Method: gl-pixel-type ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

gl-pixel-type.

Generic Writer: (setf gl-pixel-type) (object)
Package

3b-hdr.

Methods
Writer Method: (setf gl-pixel-type) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

gl-pixel-type.

Generic Reader: headers (object)
Package

3b-hdr.

Methods
Reader Method: headers ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

headers.

Generic Writer: (setf headers) (object)
Package

3b-hdr.

Methods
Writer Method: (setf headers) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

headers.

Generic Reader: height (object)
Package

3b-hdr.

Methods
Reader Method: height ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

height.

Generic Writer: (setf height) (object)
Package

3b-hdr.

Methods
Writer Method: (setf height) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

height.

Generic Reader: origin (object)
Package

3b-hdr.

Methods
Reader Method: origin ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

origin.

Generic Writer: (setf origin) (object)
Package

3b-hdr.

Methods
Writer Method: (setf origin) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

origin.

Generic Reader: width (object)
Package

3b-hdr.

Methods
Reader Method: width ((hdr-file hdr-file))

automatically generated reader method

Source

hdr.lisp.

Target Slot

width.

Generic Writer: (setf width) (object)
Package

3b-hdr.

Methods
Writer Method: (setf width) ((hdr-file hdr-file))

automatically generated writer method

Source

hdr.lisp.

Target Slot

width.


5.1.3 Classes

Class: hdr-file
Package

3b-hdr.

Source

hdr.lisp.

Direct methods
Direct slots
Slot: width
Initargs

:width

Readers

width.

Writers

(setf width).

Slot: height
Initargs

:height

Readers

height.

Writers

(setf height).

Slot: headers
Initargs

:headers

Readers

headers.

Writers

(setf headers).

Slot: data
Initargs

:data

Readers

data.

Writers

(setf data).

Slot: origin
Initform

:upper-left

Initargs

:origin

Readers

origin.

Writers

(setf origin).

Slot: gl-pixel-type
Initargs

:pixel-type

Readers

gl-pixel-type.

Writers

(setf gl-pixel-type).

Slot: gl-pixel-format
Initargs

:pixel-format

Readers

gl-pixel-format.

Writers

(setf gl-pixel-format).

Slot: gl-internal-format
Initargs

:internal-format

Readers

gl-internal-format.

Writers

(setf gl-internal-format).

Slot: exposure
Initargs

:exposure

Readers

exposure.

Writers

(setf exposure).


5.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.1 Special variables

Special Variable: *c*
Package

3b-hdr.

Source

hdr.lisp.

Special Variable: *r*
Package

3b-hdr.

Source

hdr.lisp.

Special Variable: *row*
Package

3b-hdr.

Source

hdr.lisp.


5.2.2 Macros

Macro: ilambda (args &body body)
Package

3b-hdr.

Source

hdr.lisp.

Macro: with-line-readers ((%buf) &body body)
Package

3b-hdr.

Source

hdr.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.3 Ordinary functions

Function: buf-empty (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: buf-eof (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: buf-peek-byte (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: buf-read-byte (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: buf-read-line (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: new-rle-count (r g b e)
Package

3b-hdr.

Source

hdr.lisp.

Function: new-rle-p (r g b e)
Package

3b-hdr.

Source

hdr.lisp.

Function: old-rle-p (r g b e)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-hdr-header (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-scanline (%buf length destination &key offset type)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-scanline-new (%buf r g b e length destination offset type)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-scanline-old (%buf r g b e length destination offset type)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-scanline-old/float (%buf r g b e length destination offset)
Package

3b-hdr.

Source

hdr.lisp.

Function: read-scanline-old/rgb9e5 (%buf r g b e length destination offset)
Package

3b-hdr.

Source

hdr.lisp.

Function: refill-buf (buf)
Package

3b-hdr.

Source

hdr.lisp.

Function: rgb2rgbe (r g b)
Package

3b-hdr.

Source

hdr.lisp.

Function: rgb9e5tofloat (a)
Package

3b-hdr.

Source

hdr.lisp.

Function: write-scanline (stream data width offset compress)
Package

3b-hdr.

Source

hdr.lisp.

Function: write-scanline/new (stream data width offset)
Package

3b-hdr.

Source

hdr.lisp.

Function: write-scanline/old (stream data width offset compress)
Package

3b-hdr.

Source

hdr.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

5.2.4 Generic functions

Generic Reader: buf-buf (object)
Package

3b-hdr.

Methods
Reader Method: buf-buf ((buf buf))

automatically generated reader method

Source

hdr.lisp.

Target Slot

buf.

Generic Writer: (setf buf-buf) (object)
Package

3b-hdr.

Methods
Writer Method: (setf buf-buf) ((buf buf))

automatically generated writer method

Source

hdr.lisp.

Target Slot

buf.

Generic Reader: buf-end (object)
Package

3b-hdr.

Methods
Reader Method: buf-end ((buf buf))

automatically generated reader method

Source

hdr.lisp.

Target Slot

end.

Generic Writer: (setf buf-end) (object)
Package

3b-hdr.

Methods
Writer Method: (setf buf-end) ((buf buf))

automatically generated writer method

Source

hdr.lisp.

Target Slot

end.

Generic Reader: buf-pos (object)
Package

3b-hdr.

Methods
Reader Method: buf-pos ((buf buf))

automatically generated reader method

Source

hdr.lisp.

Target Slot

pos.

Generic Writer: (setf buf-pos) (object)
Package

3b-hdr.

Methods
Writer Method: (setf buf-pos) ((buf buf))

automatically generated writer method

Source

hdr.lisp.

Target Slot

pos.

Generic Reader: buf-stream (object)
Package

3b-hdr.

Methods
Reader Method: buf-stream ((buf buf))

automatically generated reader method

Source

hdr.lisp.

Target Slot

stream.


Previous: , Up: Internals   [Contents][Index]

5.2.5 Classes

Class: buf
Package

3b-hdr.

Source

hdr.lisp.

Direct methods
Direct slots
Slot: stream
Package

common-lisp.

Initargs

:stream

Readers

buf-stream.

Writers

This slot is read-only.

Slot: pos
Initform

0

Readers

buf-pos.

Writers

(setf buf-pos).

Slot: end
Initform

0

Readers

buf-end.

Writers

(setf buf-end).

Slot: buf
Initform

(make-array 8192 :element-type (quote (unsigned-byte 8)) :initial-element 0)

Readers

buf-buf.

Writers

(setf buf-buf).


Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts


Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
B   D   E   F   G   H   I   M   N   O   R   W  
Index Entry  Section

(
(setf buf-buf): Private generic functions
(setf buf-buf): Private generic functions
(setf buf-end): Private generic functions
(setf buf-end): Private generic functions
(setf buf-pos): Private generic functions
(setf buf-pos): Private generic functions
(setf data): Public generic functions
(setf data): Public generic functions
(setf exposure): Public generic functions
(setf exposure): Public generic functions
(setf gl-internal-format): Public generic functions
(setf gl-internal-format): Public generic functions
(setf gl-pixel-format): Public generic functions
(setf gl-pixel-format): Public generic functions
(setf gl-pixel-type): Public generic functions
(setf gl-pixel-type): Public generic functions
(setf headers): Public generic functions
(setf headers): Public generic functions
(setf height): Public generic functions
(setf height): Public generic functions
(setf origin): Public generic functions
(setf origin): Public generic functions
(setf width): Public generic functions
(setf width): Public generic functions

B
buf-buf: Private generic functions
buf-buf: Private generic functions
buf-empty: Private ordinary functions
buf-end: Private generic functions
buf-end: Private generic functions
buf-eof: Private ordinary functions
buf-peek-byte: Private ordinary functions
buf-pos: Private generic functions
buf-pos: Private generic functions
buf-read-byte: Private ordinary functions
buf-read-line: Private ordinary functions
buf-stream: Private generic functions
buf-stream: Private generic functions

D
data: Public generic functions
data: Public generic functions

E
exposure: Public generic functions
exposure: Public generic functions

F
Function, buf-empty: Private ordinary functions
Function, buf-eof: Private ordinary functions
Function, buf-peek-byte: Private ordinary functions
Function, buf-read-byte: Private ordinary functions
Function, buf-read-line: Private ordinary functions
Function, new-rle-count: Private ordinary functions
Function, new-rle-p: Private ordinary functions
Function, old-rle-p: Private ordinary functions
Function, read-hdr-file: Public ordinary functions
Function, read-hdr-header: Private ordinary functions
Function, read-hdr-stream: Public ordinary functions
Function, read-scanline: Private ordinary functions
Function, read-scanline-new: Private ordinary functions
Function, read-scanline-old: Private ordinary functions
Function, read-scanline-old/float: Private ordinary functions
Function, read-scanline-old/rgb9e5: Private ordinary functions
Function, refill-buf: Private ordinary functions
Function, rgb2rgbe: Private ordinary functions
Function, rgb9e5tofloat: Private ordinary functions
Function, write-hdr-file: Public ordinary functions
Function, write-hdr-stream: Public ordinary functions
Function, write-scanline: Private ordinary functions
Function, write-scanline/new: Private ordinary functions
Function, write-scanline/old: Private ordinary functions

G
Generic Function, (setf buf-buf): Private generic functions
Generic Function, (setf buf-end): Private generic functions
Generic Function, (setf buf-pos): Private generic functions
Generic Function, (setf data): Public generic functions
Generic Function, (setf exposure): Public generic functions
Generic Function, (setf gl-internal-format): Public generic functions
Generic Function, (setf gl-pixel-format): Public generic functions
Generic Function, (setf gl-pixel-type): Public generic functions
Generic Function, (setf headers): Public generic functions
Generic Function, (setf height): Public generic functions
Generic Function, (setf origin): Public generic functions
Generic Function, (setf width): Public generic functions
Generic Function, buf-buf: Private generic functions
Generic Function, buf-end: Private generic functions
Generic Function, buf-pos: Private generic functions
Generic Function, buf-stream: Private generic functions
Generic Function, data: Public generic functions
Generic Function, exposure: Public generic functions
Generic Function, gl-internal-format: Public generic functions
Generic Function, gl-pixel-format: Public generic functions
Generic Function, gl-pixel-type: Public generic functions
Generic Function, headers: Public generic functions
Generic Function, height: Public generic functions
Generic Function, origin: Public generic functions
Generic Function, width: Public generic functions
gl-internal-format: Public generic functions
gl-internal-format: Public generic functions
gl-pixel-format: Public generic functions
gl-pixel-format: Public generic functions
gl-pixel-type: Public generic functions
gl-pixel-type: Public generic functions

H
headers: Public generic functions
headers: Public generic functions
height: Public generic functions
height: Public generic functions

I
ilambda: Private macros

M
Macro, ilambda: Private macros
Macro, with-line-readers: Private macros
Method, (setf buf-buf): Private generic functions
Method, (setf buf-end): Private generic functions
Method, (setf buf-pos): Private generic functions
Method, (setf data): Public generic functions
Method, (setf exposure): Public generic functions
Method, (setf gl-internal-format): Public generic functions
Method, (setf gl-pixel-format): Public generic functions
Method, (setf gl-pixel-type): Public generic functions
Method, (setf headers): Public generic functions
Method, (setf height): Public generic functions
Method, (setf origin): Public generic functions
Method, (setf width): Public generic functions
Method, buf-buf: Private generic functions
Method, buf-end: Private generic functions
Method, buf-pos: Private generic functions
Method, buf-stream: Private generic functions
Method, data: Public generic functions
Method, exposure: Public generic functions
Method, gl-internal-format: Public generic functions
Method, gl-pixel-format: Public generic functions
Method, gl-pixel-type: Public generic functions
Method, headers: Public generic functions
Method, height: Public generic functions
Method, origin: Public generic functions
Method, width: Public generic functions

N
new-rle-count: Private ordinary functions
new-rle-p: Private ordinary functions

O
old-rle-p: Private ordinary functions
origin: Public generic functions
origin: Public generic functions

R
read-hdr-file: Public ordinary functions
read-hdr-header: Private ordinary functions
read-hdr-stream: Public ordinary functions
read-scanline: Private ordinary functions
read-scanline-new: Private ordinary functions
read-scanline-old: Private ordinary functions
read-scanline-old/float: Private ordinary functions
read-scanline-old/rgb9e5: Private ordinary functions
refill-buf: Private ordinary functions
rgb2rgbe: Private ordinary functions
rgb9e5tofloat: Private ordinary functions

W
width: Public generic functions
width: Public generic functions
with-line-readers: Private macros
write-hdr-file: Public ordinary functions
write-hdr-stream: Public ordinary functions
write-scanline: Private ordinary functions
write-scanline/new: Private ordinary functions
write-scanline/old: Private ordinary functions

Jump to:   (  
B   D   E   F   G   H   I   M   N   O   R   W