OSDN Git Service

first commit
[eliscolors/main.git] / ElisAnimationLayerFactory.m
1 //
2 //  ElisAnimationLayerFactory.m
3 //  Elis Colors
4 //
5 //  Created by 柳 on 09/09/12.
6 //  Copyright 2009 __MyCompanyName__. All rights reserved.
7 //
8
9 #import "ElisAnimationLayerFactory.h"
10
11
12 @implementation ElisAnimationLayerFactory
13
14 - (id)init
15 {
16     bundle = [NSBundle mainBundle];
17     mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"skyblue" ofType:@"jpg"]] CGImage];
18     
19     return self;
20 }
21
22 - (CALayer*)createNewMovieLayer:(float)d name:(NSString*)name
23 {
24     CALayer* layer = [CALayer layer];
25 //    layer.contents = mediaImage;
26     // なぜかGCされる
27     mediaImage = [[NSBitmapImageRep imageRepWithContentsOfFile:[bundle pathForResource:@"skyblue" ofType:@"jpg"]] CGImage];
28     layer.contents = (id)mediaImage;
29     layer.opacity = 0.75;
30 //    [layer setValue:(id)mediaImage forKey:@"contents"];
31     layer.frame = CGRectMake(0, 0, d*timeLineScale, 50);
32     
33     CATextLayer* textLayer = [CATextLayer layer];
34     textLayer.string = name;
35     textLayer.font = @"HiraKakuPro-W3";
36     textLayer.fontSize = 26.0;
37     textLayer.foregroundColor = CGColorCreateGenericRGB(1.0, 1.0, 1.0, 1.0);
38     textLayer.frame = layer.frame;
39     
40     layer.masksToBounds = NO;
41     [layer addSublayer:textLayer];
42     [layer setValue:[NSNumber numberWithBool:NO] forKey:@"have keyframeLayer"];
43     
44     return layer;
45 }
46
47 - (CALayer*)createKeyframeLayerWithLayer:(CALayer*)layer
48 {
49     CALayer* newLayer = [CALayer layer];
50     CGRect r = layer.frame;
51     
52     r.origin.y = r.size.height;
53     r.size.height = r.size.height*2;
54     r.origin.x = 0;
55     newLayer.frame = r;
56     parentLayer = layer;
57     
58     return newLayer;
59 }
60
61 - (CALayer*)createKeyframeLevelLayer
62 {
63     CALayer* miniLayer = [CALayer layer];
64     miniLayer.frame = CGRectMake(0, 0, MINI_LAYER_WIDTH, 0);
65     miniLayer.contents = parentLayer.contents;
66     miniLayer.opacity = 0.6;
67     
68     return miniLayer;
69 }
70
71 - (void)removeParentLayer
72 {
73     parentLayer = nil; // 参照を切る
74 }
75 @end