# [name]

Represents the data source of a texture.

## Constructor

### [name]( [param:Any data] )

[page:Any data] -- The data definition of a texture. Default is `null`.

## Properties

### [property:Any data]

The actual data of a texture. The type of this property depends on the texture that uses this instance.

### [property:Boolean isSource]

Read-only flag to check if a given object is of type [name].

### [property:Boolean needsUpdate]

When the property is set to `true`, the engine allocates the memory for the texture (if necessary) and triggers the actual texture upload to the GPU next time the source is used.

### [property:Boolean dataReady]

This property is only relevant when [page:.needUpdate] is set to `true` and provides more control on how texture data should be processed. When `dataReady` is set to `false`, the engine performs the memory allocation (if necessary) but does not transfer the data into the GPU memory. Default is `true`.

### [property:String uuid]

[link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] of this object instance. This gets automatically assigned, so this shouldn't be edited.

### [property:Integer version]

This starts at `0` and counts how many times [page:Source.needsUpdate .needsUpdate] is set to `true`.

## Methods

### [method:Object toJSON]( [param:Object meta] )

meta -- optional object containing metadata.
Convert the data source to three.js [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]