Jump To …
README lib / psd / blend_mode.coffee lib / psd / channel_image.coffee lib / psd / color.coffee lib / psd / descriptor.coffee lib / psd / file.coffee lib / psd / header.coffee lib / psd / image.coffee lib / psd / image_export.coffee lib / psd / image_exports / png.coffee lib / psd / image_format.coffee lib / psd / image_formats / layer_raw.coffee lib / psd / image_formats / layer_rle.coffee lib / psd / image_formats / raw.coffee lib / psd / image_formats / rle.coffee lib / psd / image_mode.coffee lib / psd / image_modes / cmyk.coffee lib / psd / image_modes / greyscale.coffee lib / psd / image_modes / rgb.coffee lib / psd / init.coffee lib / psd / layer / blend_modes.coffee lib / psd / layer / blending_ranges.coffee lib / psd / layer / channel_image.coffee lib / psd / layer / helpers.coffee lib / psd / layer / info.coffee lib / psd / layer / mask.coffee lib / psd / layer / name.coffee lib / psd / layer / position_channels.coffee lib / psd / layer.coffee lib / psd / layer_info / blend_clipping_elements.coffee lib / psd / layer_info / blend_interior_elements.coffee lib / psd / layer_info / fill_opacity.coffee lib / psd / layer_info / gradient_fill.coffee lib / psd / layer_info / layer_id.coffee lib / psd / layer_info / layer_name_source.coffee lib / psd / layer_info / legacy_typetool.coffee lib / psd / layer_info / locked.coffee lib / psd / layer_info / metadata.coffee lib / psd / layer_info / nested_section_divider.coffee lib / psd / layer_info / object_effects.coffee lib / psd / layer_info / section_divider.coffee lib / psd / layer_info / solid_color.coffee lib / psd / layer_info / typetool.coffee lib / psd / layer_info / unicode_name.coffee lib / psd / layer_info / vector_mask.coffee lib / psd / layer_info / vector_origination.coffee lib / psd / layer_info / vector_stroke.coffee lib / psd / layer_info / vector_stroke_content.coffee lib / psd / layer_info.coffee lib / psd / layer_mask.coffee lib / psd / lazy_execute.coffee lib / psd / mask.coffee lib / psd / node.coffee lib / psd / nodes / ancestry.coffee lib / psd / nodes / build_preview.coffee lib / psd / nodes / group.coffee lib / psd / nodes / layer.coffee lib / psd / nodes / root.coffee lib / psd / nodes / search.coffee lib / psd / path_record.coffee lib / psd / resource.coffee lib / psd / resource_section.coffee lib / psd / resources / layer_comps.coffee lib / psd / resources.coffee lib / psd / util.coffee lib / psd.coffee shims / init.coffee shims / png.coffee

# info.coffee lib/psd/layer/ |
--- | ---
¶ |
    LazyExecute = require '../lazy_execute.coffee'
    Util = require '../util.coffee'

    LAYER_INFO = {
      blendClippingElements:  require('../layer_info/blend_clipping_elements.coffee')
      blendInteriorElements:  require('../layer_info/blend_interior_elements.coffee')
      fillOpacity:            require('../layer_info/fill_opacity.coffee')
      gradientFill:           require('../layer_info/gradient_fill.coffee')
      layerId:                require('../layer_info/layer_id.coffee')
      layerNameSource:        require('../layer_info/layer_name_source.coffee')
      legacyTypetool:         require('../layer_info/legacy_typetool.coffee')
      locked:                 require('../layer_info/locked.coffee')
      metadata:               require('../layer_info/metadata.coffee')
      name:                   require('../layer_info/unicode_name.coffee')
      nestedSectionDivider:   require('../layer_info/nested_section_divider.coffee')
      objectEffects:          require('../layer_info/object_effects.coffee')
      sectionDivider:         require('../layer_info/section_divider.coffee')
      solidColor:             require('../layer_info/solid_color.coffee')
      typeTool:               require('../layer_info/typetool.coffee')
      vectorMask:             require('../layer_info/vector_mask.coffee')
      vectorOrigination:      require('../layer_info/vector_origination.coffee')
      vectorStroke:           require('../layer_info/vector_stroke.coffee')
      vectorStrokeContent:    require('../layer_info/vector_stroke_content.coffee')
    }

    module.exports =
      parseLayerInfo: ->
        while @file.tell() < @layerEnd
          @file.seek 4, true # sig

          key = @file.readString(4)
          length = Util.pad2 @file.readInt()
          pos = @file.tell()

          keyParseable = false
          for own name, klass of LAYER_INFO
            continue unless klass.shouldParse(key)

            i = new klass(@, length)
            @adjustments[name] = new LazyExecute(i, @file)
              .now('skip')
              .later('parse')
              .get()

            unless @[name]?
              do (name) => @[name] = => @adjustments[name]

            @infoKeys.push key
            keyParseable = true
            break

          @file.seek length, true if not keyParseable

generated Mon May 11 2015 16:38:06 GMT-0400 (EDT)