Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a more common name for a "Blittable" data type? In my software there is a distinction between a variable sized structure and a fixed size structure that has a similar behavior to "blittable" but I have only seen the name used in Microsoft software.

share|improve this question
"Blit" is a very old term, much older than Microsoft, and still in common use among video-processor folks. Use it and be happy. – Ross Patterson Jan 3 '13 at 1:55
up vote 12 down vote accepted

The generic term would be Block Transferable. It originates with the PDP-10 as the "Block Transfer Instruction and was abbreviated as "BLT", hence "Blit or Blittable". It had to do with passing something through from Memory to Memory without going through the Accumulator like the Move Instruction would.

share|improve this answer
I'd like to name a variable structure "struct" and the blittable type something like "blockstruct". Any suggestions on a name that is more clear? I didn't like "blittable" as a name. – user76519 Jan 3 '13 at 1:20
Ahhhhhh, the PDP10. One of the sweetest machines to program in assembly there ever was. Some of the more interesting capabilities of SAIL were based on amazing (and bizarre) PDP10 instructions and it's addressing mechanisms. JFFO, anyone? – Peter Rowell Jan 3 '13 at 1:50
@user76519 what don't you like about the word blittable? It's certainly the best word for the scenario you have described. Perhaps there is some other/additional concept you are trying to convey? – MattDavey Jan 3 '13 at 12:12
@MattDavey After more of the comments I think you are right that "blittable" is probably the right term. I guess I'll call it "struct" or "blitstruct" to differentiate the different data types. – user76519 Jan 3 '13 at 20:57

According to Wikipedia the Blittable types are originated from:

A memory copy operation is sometimes referred to as a 'block transfer'. This term is sometimes abbreviated as BLT (there's actually a BLT instruction on the PDP-10) and pronounced 'blit'. The term 'blittable' expresses whether it is legal to copy an object using a block transfer.

In the Microsoft .NET framework, data is often represented in memory differently in managed and unmanaged code However, blittable types are defined as having an identical presentation in memory for both environments, and can be directly shared. So, this concept of blittable and non-blittable data types applies to specifically to the problem of data conversion between managed and unmanaged memory.

share|improve this answer

World Engineer's answer is quite fine, and gives a good historical perspective. To actually answer the question you asked though:

Is there a synonym for “Blittable” that is more common?

Yes. In C# such types are properly called unmanaged types. Section 18.2 of the specification recursively defines an "unmanaged type" as:

  • sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal, or bool.
  • Any enum type.
  • Any pointer type.
  • Any user-defined struct type that contains fields of unmanaged types only.
share|improve this answer

Rarely, you may use the term memory mapped. That sometimes refers to structures that have been mapped to a specific memory address (either because it has been bitblted there, using DMA, or so that it can be bitblted out) but it has also been used to refer to data that has been mapped to a fixed structure so that internal structures can be shared.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.